在我的SQL Server 2000数据库中,我有一个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
to设置为(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持久层。