2 回答

TA贡献1735条经验 获得超5个赞
在任何应用程序中混合 JPA 和 JDBC 是非常可能的。可JdbcTemplate
用于编写复杂的查询或进行更复杂的自定义映射。另一种选择是使用 a RowCallbackHandler
(而不是RowMapper
直接将某些内容流式传输到文件或其他资源,以保留内存)。
使用 Spring Data 时,您可以使用@Query
注释在存储库中编写自定义查询。这可以是本机查询或 JPQL。
但是,Spring 中没有任何东西可以阻止您在一个类中同时使用它们。您可以直接将您的存储库注入服务以及JdbcTemplate
(或者如果您愿意,您可以将其放在另一个外观后面)。
@Service
@Transactional
public class YourService {
private final YourCrudRepository repo;
private final JdbcTemplate jdbc;
public YourService(YourCrudRepository repo, JdbcTemplate jdbc) {
this.repo=repo;
this.jdbc=jdbc;
}
// Your methods go down here
}
现在您可以同时使用两者。Spring 的好处在于,无论使用CrudRepository或 ,JdbcTemplate它都会抛出相同的异常,DataAccessException. 如果它们在同DataSource一个上运行,JpaTransactionManager则足以管理连接和事务。

TA贡献1744条经验 获得超4个赞
为什么不把他们当成会员呢?
public class MyDao {
private JdbcTemplate template;
private CrudRepository repository;
}
当然,您需要通过所有方法,这对嘈杂很友好。Dao将是刻板印象数据访问对象。
添加回答
举报