2 回答

TA貢獻1735條經(jīng)驗 獲得超5個贊
在任何應(yīng)用程序中混合 JPA 和 JDBC 是非??赡艿????a >JdbcTemplate
用于編寫復(fù)雜的查詢或進行更復(fù)雜的自定義映射。另一種選擇是使用 a RowCallbackHandler
(而不是RowMapper
直接將某些內(nèi)容流式傳輸?shù)轿募蚱渌Y源,以保留內(nèi)存)。
使用 Spring Data 時,您可以使用@Query
注釋在存儲庫中編寫自定義查詢。這可以是本機查詢或 JPQL。
但是,Spring 中沒有任何東西可以阻止您在一個類中同時使用它們。您可以直接將您的存儲庫注入服務(wù)以及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
}
現(xiàn)在您可以同時使用兩者。Spring 的好處在于,無論使用CrudRepository或 ,JdbcTemplate它都會拋出相同的異常,DataAccessException. 如果它們在同DataSource一個上運行,JpaTransactionManager則足以管理連接和事務(wù)。

TA貢獻1744條經(jīng)驗 獲得超4個贊
為什么不把他們當(dāng)成會員呢?
public class MyDao {
private JdbcTemplate template;
private CrudRepository repository;
}
當(dāng)然,您需要通過所有方法,這對嘈雜很友好。Dao將是刻板印象數(shù)據(jù)訪問對象。
添加回答
舉報