一起使用JPA和JDBC

时间:2014-12-16 15:25:46

标签: jpa jdbc transactions

在我的项目中,我们正在将旧的J2EE应用程序升级到Java EE 6。 由于业务逻辑非常复杂,我们希望尽可能保留EJB + DAO代码。旧代码使用普通JDBC进行数据库持久化。

但在我们的新/升级应用程序中,我们计划使用JPA。 我们希望将JPA用于数据库上的所有读取操作,并使用JDBC进行写入(插入/更新/删除)。这可能在同一笔交易中吗?

例如:

  • 使用实体管理器查找(或命名查询)获取实体管理器参考并从数据库(员工实体)读取员工记录
  • 将实体实例转换为POJO
  • 更新POJO
  • 在POJO上执行一些业务逻辑(按原样重用旧代码)
  • 创建JDBC连接并使用预准备语句更新数据库中的员工记录(按原样重用旧代码)

问题:

  1. 如果我打开2个与数据库的单独连接 - 一个来自JPA,另一个来自JDBC,它是否仍然在同一个事务中(因为app server管理JTA事务)?
  2. 这种方法有哪些潜在问题?
  3. 由于我是通过JDBC更新数据库,因此持久化上下文中的实体将不与数据库同步。在这种情况下如何处理缓存?
  4. 我查看了以下相关主题,但我想更详细地了解。

0 个答案:

没有答案