我已经打了一个拦截器将修复到现有project.the主要问题是,我一定会喜欢使用@Prepersist,并@PreUpdate在POJO照顾LastModified使用Hibernate实现JPA与会议现场(INSERT和UPDATE)。
@Prepersist
@PreUpdate
POJO
LastModified
原因? :需要进行此更改,因为有必要使用,liquibase 1.9.5而且我知道(因为我之前已经遇到过),liquibase使用默认的current_timestamp将时间戳转换为datetime,对于MySQL数据库来说太糟糕了。
liquibase 1.9.5
所以我需要一种在代码中而不是在数据库中进行设置的方法,这样我就可以安全地将timestamp字段更改为datetime。然后,liquibase很高兴,我很高兴。
现在似乎这些解释器没有被执行,经过很少的搜索,我发现它适合使用entityManager。这目前是没有问题的,所以我想知道是否有解决我的问题的 简单 方法,这意味着使用@Prepersistor @PreUpdate或or甚至其他解决方法来设置lastModified字段仍使用会话
entityManager
lastModified
现在看来这些解释器尚未执行,经过很少的搜索,我发现使用entityManager是合适的。
是的,如果您使用的是SessionAPI ,则JPA回调将不起作用。
Session
因此,我想知道是否有解决问题的简单方法,这意味着可以使用@PrePersist或@PreUpdate或其他解决方法来设置lastModified字段仍在使用会话
据我所知,周围有没有简单的方法(如果你使用Spring, MAYBE 看看这个帖子虽然)。
我对基于Hibernate的解决方案的建议是使用事件(和一个或多个接口)。查看hibernate和上次修改日期的示例。