DATETIME
,名称为lastTouched
,默认值/绑定设置为getdate()
。我正在使用Netbeans 6.5生成的JPA实体类,并在我的代码中引用它。
@Basic(optional = false)
@Column(name = "LastTouched")
@Temporal(TemporalType.TIMESTAMP)
private Date lastTouched;
然而,当我尝试将该对象存入数据库时,我会收到以下错误:
javax.persistence.PersistenceException: org.hibernate.PropertyValueException: not-null property references a null or transient value: com.generic.Stuff.lastTouched
我尝试将@Basic
设置为(optional = true)
,但这会抛出一个异常,说数据库不允许null
值用于TIMESTAMP
列,这是按设计来的。
ERROR JDBCExceptionReporter - Cannot insert the value NULL into column 'LastTouched', table 'DatabaseName.dbo.Stuff'; column does not allow nulls. INSERT fails.
我之前在纯Hibernate中成功实现了这个功能,但是我现在已经转到JPA,不知道如何告诉它这一列应该由数据库端生成。请注意,我仍然将Hibernate作为我的JPA持久层。