[英]Jpa named query: how to get a list of column
我有一個實體orderdetails,其中用戶可以有許多訂單名稱,我想使用jpa命名查詢按用戶ID獲取所有訂單名稱。 我試過了
SELECT o.orderName FROM OrderDetails o WHERE o.userId=:userId;
由於返回類型將在結果集中為List,因此我像這樣執行查詢
getEntityManager().createNamedQuery("getOrderNamesByUserId",
orderDetail.class).setParameter("userId", userId);
這顯然是行不通的。 如何使該查詢正常工作? 一種方法是迭代List,但我想知道是否還有另一種方法?
好吧,這是未編譯的代碼片段,您可以嘗試以下方法。
@Override
public List<OrderDetails> findOrders(Long userId) {
TypedQuery<OrderDetails> query = entityManager.createNamedQuery(
"OrderDetails.getOrderNamesByUserId", OrderDetails.class);
query.setParameter("userId", userId);
List<OrderDetails> list = query.getResultList();
return list;
}
如果只需要選擇一列(訂單名),請使用getResultList()
方法。
Query query = getEntityManager().createNamedQuery("getOrderNamesByUserId", OrderDetail.class);
query.setParameter("userId", userId);
List<String> orderNameList = query.getResultList();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.