2 回答

TA貢獻1735條經驗 獲得超5個贊
在任何應用程序中混合 JPA 和 JDBC 是非??赡艿????a >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將是刻板印象數據訪問對象。
添加回答
舉報