使用Spring Data nad Querydsl我們可以聲明存儲庫接口並跳過實現類。一些具有特定名稱或使用@Query註釋的方法,就這些。在Spring數據中使用Querydsl的最佳實踐
但有時我想使用JPAQuery,並通過自己定義方法的身體,讓我們說
@Repository
public class MyRepositoryImpl implements MyRepository {
@PersistenceContext
private EntityManager em;
@Override
public List<Tuple> someMethod(String arg) {
JPAQuery query = new JPAQuery(em);
...
}
但這樣一來我就必須實現其他MyRepository接口方法,其遺址所有的Spring Data的優勢!
我可以看到兩個選項:
- 每聲明每個庫的另一個接口,然後正常地執行它(其中的接口數量增加一倍)
- 進樣的EntityManager成@服務類,並實現我的自定義方法有
我更喜歡選項#2,但據我所知,在@Service類中,我們應該只調用存儲庫方法,所以它也不是一個完美的解決方案。
那麼程序員如何處理它呢?
我面臨同樣的問題,目前我選擇了服務層來使用'JPQLQuery' – Paizo