【发布时间】:2010-10-23 03:33:37
【问题描述】:
在我的 SQL Server 2000 数据库中,我有一个名为 lastTouched 的类型为 DATETIME 的时间戳(在函数中,不在数据类型中)列设置为 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),但这会引发异常,指出数据库不允许TIMESTAMP 列的null 值,这不是设计使然。
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 持久层。
【问题讨论】:
标签: java jpa persistence annotations timestamp