什么是CDI中的Spring-JDBC?

时间:2013-07-24 06:46:40

标签: java jdbc transactions cdi

考虑在新项目中用CDI替换Spring,我遇到了问题挑战:

我们使用SQL查询做了很多事情(JPA不合理):调用存储过程,报告,具有复杂语法的专用查询。

在互联网上有很多关于CDI数据库访问的简单例子,对于简单的例子,JPA就足够了。但是你如何在JPA中使用SQL?

我正在寻找类似Spring-JDBC的东西,带有简化的界面,用于通过JDBC运行SQL查询和容器管理事务(通过注释),但我还没有找到任何东西。

如何使用CDI中的SQL查询?是否可以使用CDI核心或扩展?

2 个答案:

答案 0 :(得分:2)

规范中没有任何关于这样做的内容。您必须创建自己的库,创建事务层(或使用Java EE 7中的JTA 1.2或Apache Deltaspike)并以此方式构建它。我确实提到了DeltaSpike,在(希望)即将发布的版本0.5中将会有一些查询和其他数据库特定的功能。

答案 1 :(得分:1)

CDI代表上下文/依赖注入(如果我没有记错的话)。它本身与SQL无关。使用CDI和JPA可以使用数据库,但即使在这种情况下,JPA也可以完成所有工作。 CDI与它几乎无关。

如果您想使用本机查询而JPA的nativeQuery是不够的,您必须将Spring-JDBC依赖项添加到项目中,或者因为您正在离开Spring,另一个较小的库,可以提供与JdbcTemplate类似的东西。

总而言之,CDI没有Spring-JDBC的等价物,就像Spring没有等效的Swing GUI一样。