如何在 JPA 中使用 NamedQuery

Posted

技术标签:

【中文标题】如何在 JPA 中使用 NamedQuery【英文标题】:How to use NamedQuery in JPA 【发布时间】:2016-11-08 14:59:45 【问题描述】:

我正在尝试在 JPA 中使用 NamedQuery,例如我已经定义了类似的东西:

@Stateless
@Local
@Slf4j
@NamedQuery(
    name="findAllCustomer",
    query="select p.owner from UserInfo p where p.customer.id= :cusId")
public class CustomerDAOBean extends GenericDAO<Integer, Person>

public List<Person> findAllCustomers(Integer customerId) 

      return  em.createNamedQuery("findAllCustomer")
                .setParameter("cusId",customerId)
                .getResultList();

但是得到这样的异常:

Caused by: java.lang.IllegalArgumentException: NamedQuery of name: findAllCustomer not found.

【问题讨论】:

【参考方案1】:

我建议写在实体类中

【讨论】:

以上是关于如何在 JPA 中使用 NamedQuery的主要内容,如果未能解决你的问题,请参考以下文章

JPA 计数 NamedQuery

如何使用 LEFT JOIN 创建 JPA NamedQuery

为啥元字符 * 不能在 JPA 的实体中的 NamedQuery 中使用?

在 JPA NamedQuery 中使用 HashSet 作为参数会引发 IllegalArgumentException

EclipseLink JPA NamedQuery 在 Set 类型的字段中找不到 .size 属性

JPA NamedQuery - 当传递的字段为空时忽略行