我想了解Spring数据存储库的局限性。
在查询数据库时,似乎Spring存储库只能返回实体或类似的集合,如string / int等。这是有道理的,因为Spring Repository是一个函数,函数只能返回一个结果。
那么如果我需要使用@Query注释执行一个复杂的sql,并期望多个结果呢?就像一组实体和一个数字。
我认为Spring Repository无法实现,所以如果我错了,请纠正我。
更重要的是,我怎么能用春天来做到这一点?
答案 0 :(得分:0)
不,我不可能知道Repository使用查询,但是Spring ServiceImpl仍然使用Repository,你可以将EntityManager
注入serviceImpl并使用它。例如,请参阅Getting started with Spring Data JPA:
@PersistenceContext
private EntityManager em;
TypedQuery query = em.createQuery("select a from Account a where a.customer = ?1", Account.class);
query.setParameter(1, customer);
return query.getResultList();