【发布时间】:2013-04-26 14:17:44
【问题描述】:
我有以下数据库列:
`last_modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
在hibernate中有如下映射:
@Temporal(TemporalType.TIMESTAMP)
@Column(name="last_modified", nullable=false, length=19)
public Date getLastModified() {
return this.lastModified;
}
这几个月来一直运行良好,但突然间我收到以下错误:
javax.persistence.PersistenceException: org.hibernate.PropertyValueException: not-null 属性引用空值或瞬态值:com.fs.model.BrowserHistory.lastModified
所以我想知道,为什么会突然发生这种情况?如果我将 lastModified 字段设置为可为空,是否可以?
【问题讨论】:
-
你真的设置了属性吗? Hibernate 将在持久化之前进行验证。您在表定义中定义默认值无关紧要。
-
@Bart,不,它是数据库生成的属性,所以我不应该设置它。我想我在休眠文档中找到了解决方案并发布了答案。