Hibernate 暂时禁用grails自动夯实
我有一个grails的工作,就是对我的数据进行一些处理。这涉及在一些字符串操作之后更新标题字段 我试图让lastUpdated戳记不受上述过程的影响,因为用户通常会按lastUpdated排序 有没有办法暂时禁用自动时间戳?我正在使用Grails2.4.5 我尝试过这个建议,但没有奏效,而且大大降低了处理速度(4秒变为30秒) **更新**Hibernate 暂时禁用grails自动夯实,hibernate,grails,domain-model,Hibernate,Grails,Domain Model,我有一个grails的工作,就是对我的数据进行一些处理。这涉及在一些字符串操作之后更新标题字段 我试图让lastUpdated戳记不受上述过程的影响,因为用户通常会按lastUpdated排序 有没有办法暂时禁用自动时间戳?我正在使用Grails2.4.5 我尝试过这个建议,但没有奏效,而且大大降低了处理速度(4秒变为30秒) **更新** 此外,我也不寻求涉及创建仅更新特定场景(atm)的新字段的解决方案。有一个名为autoTimeflag的标志 示例用法: static mapping =
此外,我也不寻求涉及创建仅更新特定场景(atm)的新字段的解决方案。有一个名为autoTimeflag的标志 示例用法:
static mapping = {
autoTimestamp false
}
负责根据
autoTimestamp
映射设置设置时间戳的类为
我尝试使用Groovy类别和拦截器拦截handleTimestampingBeforeUpdate调用:两者都不起作用。我怀疑ClosureEventListener正在另一个线程中运行。我没有尝试使用ExpandoMetaClass,因为这会导致全局更改,影响所有save()
的尝试
推荐
我认为你最好的选择是:
save()
之前,修改作业以禁用标志。另一种方法是实现一个自定义的save()
方法这种方法需要关闭autoTimestamp,因为ClosureEventListener在调用前更新()后设置时间戳。因此,如果未关闭autoTimestamp,则在beforeUpdate()中对LastUpdate所做的更改将被覆盖。我知道这一点,但看起来您无法在运行时对其进行更改。
static mapping = {
autoTimestamp false
}