我有一个带有多个参数的JPA/EclipseLink模型,其值由PostgreSQL数据库设置为默认值。具体来说,我有:在插入JPA时跳过一列
SERIAL
类型的id
列其中自动递增,当添加新行TIMESTAMP
类型的created_at
栏默认为now()
我的模型看起来像这样:
import javax.persistence.*;
@Entity
@Table(name="entity")
@NamedQuery(name="Entity.findAll", query="SELECT e from Entity e")
public class Entity {
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer id;
@Column(name="created_at")
private java.sql.Timestamp createdAt;
// constructor, getters, and setters
}
当我试图插入一行在javax.persistence.EntityManager
中为,插入失败,因为created_at
列的值被设置为NULL
。我不想插入NULL
,我只想不插入任何东西到该列中,并允许PostgreSQL将其设置为now()
。本质上,我想在createdAt
上使用@GeneratedValue
,但该注释仅适用于主键,不能用于多个属性。是否有另一个我可以使用的注释来实现这一点?
也许这就是你要找的东西:http://stackoverflow.com/questions/8202154/how-to-create-an-auto-generated-date-timestamp-field-in-a-play-jpa – Spasoje