JPA & JDBC 可以在 DAO 层共存吗?
Posted
技术标签:
【中文标题】JPA & JDBC 可以在 DAO 层共存吗?【英文标题】:JPA & JDBC can coexist in DAO layer? 【发布时间】:2013-09-19 06:40:41 【问题描述】:在数据访问层同时使用 JDBC (JdbcTemplate) 和 JPA (EntityManager) 有什么问题吗?
我打算使用 JDBC 来访问存储过程/例程。 这些存储过程将通过连接多个表(未注册为 JPA 实体)返回多个游标。
这些 JDBC 操作是纯只读的。
我没有在给定 here 的相同事务中组合 JPA 和 JDBC 操作
【问题讨论】:
【参考方案1】:对我来说没问题。为工作使用正确的工具。例如,如果我想做一些数据跨越多个不同实体的报表查询,或者想要使用一些 JPA 不支持或难以实现的强大数据库功能(例如窗口函数、公用表表达式),我宁愿使用 JDBC 直接发出原生 SQL 来完成工作。
架构CQRS 也使用了这种思想,它有两种不同的独立模型来更新信息(命令操作)和读取信息(查询操作)。例如,JPA 可用于命令操作,而原生 JDBC 用于查询动作。
【讨论】:
以上是关于JPA & JDBC 可以在 DAO 层共存吗?的主要内容,如果未能解决你的问题,请参考以下文章