JPA REST中的NamedQueries WHERE EQUALS语句

时间:2015-11-25 11:20:18

标签: sql rest jpa jax-rs

我正在创建一个REST服务,起初很简单,但现在我想在列中获取具有特定值的表行。

这是我现在拥有的NamedQueries的一个例子:

@NamedQuery(name = "ExampleTable.findAll", query = "SELECT e FROM ExampleTable e"),
@NamedQuery(name = "ExampleTable.findById", query = "SELECT e FROM ExampleTable e WHERE e.id = :id"),
@NamedQuery(name = "ExampleTable.findByAmlClientCategory", query = "SELECT e FROM ExampleTable e WHERE e.amlClientCategory = :amlClientCategory"),
@NamedQuery(name = "ExampleTable.findByClientId", query = "SELECT e FROM ExampleTable e WHERE e.clientId = :clientId")

现在,如果我想通过特定的AmlClientCategory值找到,请说出AmlClientCategory列中包含“1”的所有行,我该怎么做?

我正在关注this指南以创建我的REST服务。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:2)

你可以像这样执行它(假设AmlClientCategory是一个字符串):

List<ExampleTable> results = em.createNamedQuery("ExampleTable.findByAmlClientCategory", ExampleTable.class)
    .setParameter("AmlClientCategory", "1")
    .getResultList();

答案 1 :(得分:1)

在DAO实现类中使用以下代码。

Query query= entityManager.createNamedQuery("ExampleTable.findByAmlClientCategory");
query.setParameter("AmlClientCategory", "1");
Collection result = query.getResultList();

您可以在此处为NamedQuery设置多个参数。