一尘不染

Hibernate/ JPA中的@PreUpdate和@Prepersist(使用会话)

hibernate

我已经打了一个拦截器将修复到现有project.the主要问题是,我一定会喜欢使用@Prepersist,并@PreUpdatePOJO照顾LastModified使用Hibernate实现JPA与会议现场(INSERT和UPDATE)。

原因? :需要进行此更改,因为有必要使用,liquibase 1.9.5而且我知道(因为我之前已经遇到过),liquibase使用默认的current_timestamp将时间戳转换为datetime,对于MySQL数据库来说太糟糕了。

所以我需要一种在代码中而不是在数据库中进行设置的方法,这样我就可以安全地将timestamp字段更改为datetime。然后,liquibase很高兴,我很高兴。

现在似乎这些解释器没有被执行,经过很少的搜索,我发现它适合使用entityManager。这目前是没有问题的,所以我想知道是否有解决我的问题的
简单 方法,这意味着使用@Prepersistor
@PreUpdate或or甚至其他解决方法来设置lastModified字段仍使用会话


阅读 1064

收藏
2020-06-20

共1个答案

一尘不染

现在看来这些解释器尚未执行,经过很少的搜索,我发现使用entityManager是合适的。

是的,如果您使用的是SessionAPI ,则JPA回调将不起作用。

因此,我想知道是否有解决问题的简单方法,这意味着可以使用@PrePersist或@PreUpdate或其他解决方法来设置lastModified字段仍在使用会话

据我所知,周围有没有简单的方法(如果你使用Spring, MAYBE
看看这个帖子虽然)。

我对基于Hibernate的解决方案的建议是使用事件(和一个或多个接口)。查看hibernate和上次修改日期的示例。

2020-06-20