rab*_*azl 9 java spring hibernate jpa activiti
我们遇到了困难.
所有这些努力都是为了让Activiti能够将EntityManager用于其JPA扩展,同时让现有的hibernate依赖代码继续工作.
首先,如果您想拥有一个持久性单元并且您实际上在您的 Hibernate 实体中使用 @IdClass/@EmbeddedId,那么您上面的第三点可能很难适应。以下是两种可能的解决方案:
将 JPA 拉入您的项目并为您现有的 Hibernate 实体配置一个持久性单元,但继续通过直接访问 Session 将现有调用委派给 Hibernate。在这种情况下,您的配置将移至 JPA,但您的代码不会。这种方法还假设您有一些合理的抽象,以可插拔的方式分配 Session 对象。请参阅此问题以了解解决方案的关键。如果您对上述第 3 点的灵活性为零,则此方法可能不适合您。
创建会话工厂和持久性单元,并使用 JTA 与两个 XA 数据源协调事务。即使您的数据可能驻留在同一个数据库中,如果您采用这种方法,您也需要确保在您的配置中创建不同的数据源。这样可以防止 Spring 的事务代理在参与分布式事务的时候混淆。这可能是最干净的方法,但确实带有 XA 交易的耻辱,根据您的容器,如今这更像是一个政治问题而不是技术问题。
归档时间: |
|
查看次数: |
3288 次 |
最近记录: |