spring - JPA和JDBC可以在DAO层共存吗?

标签 spring jpa jdbc

在数据访问层同时使用 JDBC (JdbcTemplate) 和 JPA (EntityManager) 有什么问题吗?

我打算使用 JDBC 访问存储过程/例程。 这些存储过程将通过连接多个表(未注册为 JPA 实体)返回多个游标。

这些 JDBC 操作是纯只读的。

我没有将 JPA 和 JDBC 操作合并到给定的相同事务中 here

最佳答案

对我来说没问题。为工作使用正确的工具。例如,如果我想做一些数据跨越许多不同实体的报表查询,或者想使用 JPA 不支持或难以实现的一些强大的数据库功能(例如窗口函数、公用表表达式),我更愿意使用 JDBC 直接发出 native SQL 来完成工作。

架构 CQRS也使用了这个想法,它有两个不同的独立模型来更新信息(命令操作)和读取信息(查询操作)。例如,JPA 可以用于命令操作,而 native JDBC 用于查询操作。

关于spring - JPA和JDBC可以在DAO层共存吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18887770/

相关文章:

java - 用于名字验证的正则表达式

java - 删除 map 的所有键都包含在mongodb列表中的位置

java - JPQL 中的 LEFT JOIN ON()

java - spring-data 带下划线的属性名称不可转义,如文档所述

java - ResultSet 方法 "last"这是最佳方法吗?

java - Spring Boot-云 :/actuator/refresh working but not able to get the changed values on the fly

java - Spring绑定(bind)抽象对象

java - JPA、@Transient 字段和 native 查询映射

postgresql - 无法使用 Kafka 将数据从 MySQL 流式传输到 Postgres

java - 迭代 ResultSet 时更新行需要花费大量时间