Hibernate 为一个特定域类的对象创建的日期中缺少时间组件

Hibernate 为一个特定域类的对象创建的日期中缺少时间组件,hibernate,grails,gorm,Hibernate,Grails,Gorm,在Grails应用程序中,我们有一个特定的域类,其自动生成的dateCreated值有时是错误的。数据库中保存的datetime包含年、月和日期,但缺少小时、分钟和秒。域类的定义如下: class Monster { // ...various other fields, but no hibernate hooks, or anything clever like that Date dateCreated Date lastUpdated } 它由MySQL数据库中

在Grails应用程序中,我们有一个特定的域类,其自动生成的
dateCreated
值有时是错误的。数据库中保存的datetime包含年、月和日期,但缺少小时、分钟和秒。域类的定义如下:

class Monster {
    // ...various other fields, but no hibernate hooks, or anything clever like that
    Date dateCreated
    Date lastUpdated
}
它由MySQL数据库中的一个表支持,在创建的
date\u列中,类型为
datetime
。该列不为null,但没有其他约束、触发器等

大约六分之一的怪物受到影响,我们还没有发现任何模式。我们从不显式地设置
dateCreated
,也从不在应用程序代码中的任何地方设置lastUpdated
始终是完整的,
dateCreated
在除Monster之外的所有域对象上都可以


这些症状对任何人都有提示吗?我们一开始以为我们自己在用某种愚蠢的方式给它写信,但我们已经找了好几天了,还没有找到任何隐晦的暗示。

这几乎是不可能的,但显然它正在发生。您是通过直接查看数据库来验证值,还是仅仅根据您在Grails应用程序中看到的内容来验证值?@JeffScottBrown唉,我们在数据库和重构对象中都看到了这些错误值。您的应用程序中是否有代码将值指定给dateCreated?确实很奇怪。如果你能想出一个办法让它发生,请提交一份JIRA,我们会解决它。这是我第一次听说这种情况。@JeffScottBrown我们不直接在应用程序的任何地方设置dateCreated,也不在任何域对象上设置。我们现在正在研究间接访问——也许我们在某个地方编写了
monster.“$it”=a-date-without-a-time-component
而没有任何意义?但我并不乐观。如果我们设法提取复制品,我一定要归档。