我有一个带有TIMESTAMP列的实体。当我使用EntityManager在我的数据库中持久保存新条目时,我可以看到我的表中正确设置了新行但是如果我尝试使用preparedQuery检索此实体,我会返回一个具有TIMESTAMP属性Null的实体,而它在表中不为空。
@Basic(optional = false)
@NotNull
@Column(name = "devis_date_crea", nullable = false)
@Temporal(TemporalType.TIMESTAMP)
private Date devisDateCrea;
注意:在持久化上下文中将验证mod设置为null之前,persist方法抛出了EJBCallBackException。
答案 0 :(得分:0)
我不确定你是否知道,但SQL时间戳实际上并不包含任何时间或日期。
时间戳是一种数据类型,它公开自动生成的二进制数,这些数字在数据库中保证是唯一的。 timestamp通常用作对表行进行版本标记的机制。存储大小为8个字节。
如果您需要datetime,则应使用datetime类型。 如果您需要在每次创建和更新时更改它,您可以使用默认值进行创建并触发更新。
更多信息 http://msdn.microsoft.com/en-us/library/aa260631(v=sql.80).aspx