@PreUpdate和@Prepersist在hibernate/ JPA(使用会话)

我已经打了一个阻滞剂,添加一个修复现有的项目。主要的问题是,我想在POJO使用@Prepersist@PreUpdate来照顾LastModified字段(插入和更新)使用JPA的hibernate实现会话。

原因? :这个改变是必须的,因为需要使用liquibase 1.9.5 ,我知道(因为我之前遇到过这种情况),liquibase将timestamp转换为datetime与默认的current_timestamp,这对于mysql数据库来说太糟糕了。

所以我需要一种方法来在代码中而不是在数据库中设置此集,以便我可以安全地将时间戳字段更改为datetime.then liquibase很高兴,我很高兴。

现在看来,这些解释器没有被执行,很less有search,我发现它适合使用entityManager 。目前没有问题。所以我想知道是否有一个简单的方法来解决我的问题,这意味着有@Prepersist@PreUpdate甚至是其他解决方法来设置仍使用会话的lastModified字段

现在看来这些解释器没有被执行,很lesssearch我发现它适合使用entityManager。

是的,如果您使用Session API,则JPAcallback将不起作用。

所以我想知道是否有一个简单的方法解决我的问题,意味着有@PrePersist或@PreUpdate甚至其他解决方法设置lastModified字段仍然使用会话

据我所知,没有简单的方法(如果你使用Spring, MAYBE可以看看这篇文章 )。

我对基于Hibernate的解决scheme的build议是使用事件 (和一个或多个接口)。 检查Hibernate和上次修改date的例子。