有谁知道如何处理由Spring Boot创建的Hibernate SessionFactory?
我已经打了一个拦截器将修复到现有project.the主要问题是,我一定会喜欢使用@Prepersist
,并@PreUpdate
在POJO
照顾LastModified
使用Hibernate与会话实现JPA的领域(INSERT和UPDATE).
原因?:这个更改是必需的,因为需要使用liquibase 1.9.5
并且我知道(因为我之前已经面对过)liquibase将时间戳转换为使用默认current_timestamp的日期时间,这对于mysql数据库来说太糟糕了.
所以我需要一种方法来在代码中而不是在数据库中设置这个集合所以我可以安全地将时间戳字段更改为datetime.then liquibase很高兴,我很高兴.
现在似乎那些解释器没有被执行,很少有搜索我发现它适合使用entityManager
.目前是不可能的.所以我想知道是否有一个简单的方法解决我的问题,这意味着有@Prepersist
或@PreUpdate
或甚至其他解决方法来设置lastModified
仍然使用会话的字段
Hibernate Session
类和EntityManager
类之间有什么区别?我知道EntityManager
实现了Java Persistence API,但我不确定它与它的关系Session
.他们有关系吗?
我一直在讨论这个问题,Hibernate SessionFactory和JPA EntityManagerFactory之间的鸟眼差异是JPA是标准的.您可以使用它而不必担心底层ORM.然而它会在底层调用底层的sessionFactory.(如果我错了,请纠正我)
但如果有人知道他将来只是坚持使用hibernate作为ORM,那么他应该从这两个工厂中选择什么呢?为什么呢?
其次,这两者在性能,功能,稳定性等方面还存在哪些差异?
我正在开发一个使用Hibernate 4.1,Spring 3.1和JPA 2.0的项目,我想验证我从互联网上收集到的内容是否正确.
我正在尝试决定是使用JPA entityManager还是使用特定于hibernate的sessionFactory.
起初我计划使用entityManager和完整的JPA规范,所以我的项目将与Hibernate分离,我可以将其换成其他东西,比如EclipseLink,如果花哨的话带我或后来说服了我的东西.
但是,似乎entityManager有一些非常重要的限制.
我的问题:
我想要使用完整的JPA规范和entityManager的唯一原因是能够相对容易地为不同的JPA 2.0兼容ORM切换Hibernate,对吧?使用entityManager是否真的没有性能/功能/易编程优势?
其次,看起来hibernate sessionFactory比entityManager有很多好处.到目前为止,我遇到的问题是entityManager无法执行实体列表的批量插入,我已经读过sessionFactory了.我还读到sessionFactory可以自动返回自动生成的实体ID,而使用entityManager,您需要结束事务/刷新持久化上下文以提取新生成的id.
我喜欢我的项目与Hibernate相对分离的想法,但我宁愿能够从一开始就编写高效的数据库更新.所以我应该切换到我的项目配置为hibernate和sessionFactory,对吗?