簡體   English   中英

JPA命名查詢:如何獲取列列表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM