【发布时间】:2017-08-13 20:22:10
【问题描述】:
我有一个带有多个参数的 JPA/EclipseLink 模型,其值由 PostgreSQL 数据库设置为默认值。具体来说,我有:
-
SERIAL类型的id列在添加新行时自动递增 -
created_at类型为TIMESTAMP的列,默认为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 中插入带有persist() 的行时,插入失败,因为正在为created_at 列设置NULL 值。我不想插入NULL,而是不想在该列中插入任何内容,并允许PostgreSQL将其设置为now()。本质上,我想在createdAt 上使用@GeneratedValue,但该注释仅用于主键,不能用于多个属性。我可以使用另一个注释来完成此操作吗?
【问题讨论】:
-
也许这就是你要找的东西:stackoverflow.com/questions/8202154/…
标签: java postgresql jpa eclipselink