首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何调用命名查询

如何调用命名查询
EN

Stack Overflow用户
提问于 2010-04-30 17:52:29
回答 2查看 42.5K关注 0票数 20

我在实体类Voter中编写了一个命名查询

代码语言:javascript
复制
NamedQuery(name = "Voter.findvoter", query = "SELECT count(*) FROM Voter v WHERE v.voterID = :voterID" and where v.password= : password),

我想要调用这个命名查询,并且我还需要设置voterID和密码。

你能帮帮我吗。谢谢

EN

回答 2

Stack Overflow用户

发布于 2010-04-30 20:17:24

我想您在NamedQuery注释中遗漏了@符号?

在代码中,您可以这样调用它:

代码语言:javascript
复制
List results = em.createNamedQuery("Voter.findvoter")
    .setParameter("voterID", "blah")
    .setParameter("password","blahblahblah")
    .getResultList();
票数 38
EN

Stack Overflow用户

发布于 2017-04-21 20:45:50

实际上布伦特是对的,你的NameQuery应该是这样的,

代码语言:javascript
复制
@NamedQuery(name = "Voter.findvoter", query = "SELECT count(*) FROM Voter v WHERE v.voterID = :voterID AND where v.password = :password")
@Entity
public class Voter implements Serializable{ ... }

在别的地方你应该试试这个(迪克已经说过了)

代码语言:javascript
复制
public class VoterFasade{
    public List<Voter> findVoter(long id,String password){
        List<Voter> results = em.createNamedQuery("Voter.findvoter")
            .setParameter("voterID", id)
            .setParameter("password",password)
            .getResultList();
        return result;
    }
}

然后你可以像这样使用它

代码语言:javascript
复制
@Inject
VoterFasade voterFasade;

///
long id=12;
voterFasade.findVoter(id);

应该可以正常工作。(这是一个未编译的代码)。

您也可以使用存储库执行此操作,请查看下面的链接part Repository Listing23。示例存储库enter link description here

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2743649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档