Hibernate EntityManager 文档指出:
根据项目的业务和技术需求,您可以结合使用这三者的组合、没有 JPA 编程接口和生命周期的注释,甚至可以使用纯原生 Hibernate Core。您可以随时回退到 Hibernate 原生 API,或者如果需要,甚至可以回退到原生 JDBC 和 SQL。
使用 JPA API (EntityManager) 的代码显然更具可移植性(即使偶尔回退到 Hibernate Core)。
但是,当我使用纯 Hibernate Core 时,我会有什么优势吗?我想知道,JPA 2 模型是否真的适合 Hibernate Core 之上而没有任何矛盾?IOW,回退到 Core 总是很容易而且没有问题吗?
我主要担心的是:
也许差异不仅在于 API,还在于底层语义?!(例如,可能发生冲突的不同事务/版本控制/锁定语义:Core 文档中提到了悲观锁定,但 EntityManager 文档中没有提到 - 所以我仍然可以通过回退到 Core 来使用悲观锁定而不会引起问题吗?诸如此类的事情.. .)