【发布时间】:2013-07-24 06:46:39
【问题描述】:
考虑在新项目中用 CDI 替换 Spring,我遇到了一个问题挑战:
我们用 SQL 查询做了很多事情(JPA 不合理):调用存储过程、报告、具有复杂语法的特殊查询。
互联网上有很多CDI数据库访问的琐碎例子,对于琐碎的例子,JPA就足够了。但是如何在 JPA 中使用 SQL?
我正在寻找类似 Spring-JDBC 的东西,它具有通过 JDBC 和容器管理事务(通过注释)运行 SQL 查询的简化接口,但我还没有找到任何东西。
如何在 CDI 中使用 SQL 查询?是否可以使用 CDI 核心或扩展?
【问题讨论】:
-
JPA 原生查询有什么问题?它在这里处理完整的 SQL 查询(存储过程等)并保留一些 JPA 的好处,如二级缓存。
-
@AntoineSabot-Durand 你可以在 JPA 原生查询中使用任何表而不将它们映射到实体中吗?您可以完全禁用缓存(第一级和第二级)以进行报告查询吗?如果是,那将是我的选择。但是我只从 Hibernate 中知道 JPA,这些事情是不可能的。
标签: java jdbc transactions cdi