1

我有一个带有 TIMESTAMP 列的实体。当我使用 EntityManager 在我的数据库中保留一个新条目时,我可以在我的表中看到正确设置的新行,但是如果我尝试使用preparedQuery 检索此实体,我会返回一个带有 TIMESTAMP 属性 Null 的实体,而它在表中不为空。

@Basic(optional =     false)
@NotNull
@Column(name = "devis_date_crea", nullable = false)
@Temporal(TemporalType.TIMESTAMP)
private Date devisDateCrea;

注意:直到我在持久性上下文中将验证模式设置为 null 之前,persist 方法会引发 EJBCallBackException。

4

1 回答 1

0

我不确定你是否知道,但 SQL Timestamp 实际上不包含任何时间或日期。

时间戳是一种数据类型,它公开自动生成的二进制数,保证在数据库中是唯一的。时间戳通常用作对表行进行版本标记的机制。存储大小为 8 个字节。

如果你需要日期时间,你应该使用日期时间类型。如果您需要在每次创建和更新时更改它,您可以使用默认值进行创建并使用触发器进行更新。

更多信息 http://msdn.microsoft.com/en-us/library/aa260631(v=sql.80).aspx

于 2012-02-27T15:10:51.693 回答