gpt4 book ai didi

hibernate - 如何为命名查询设置参数

转载 作者:行者123 更新时间:2023-12-02 15:38:58 24 4
gpt4 key购买 nike

嗨,我有一个命名查询

@NamedQuery(name = "StudyplanCategory.findByStatusAndLimit",
query = "SELECT s FROM StudyplanCategory s WHERE
s.status =:status LIMIT s.start=:start,s.end=end")

我想这样设置限制:

@NamedQuery(name = "StudyplanCategory.findByStatusAndLimit", 
query = "SELECT s FROM StudyplanCategory s WHERE
s.status =:status LIMIT s.start=:start,s.end=end")

但这在服务器启动时显示错误。我正在使用以下代码在 DAO 类中调用查询:

Query query = entityManager.createNamedQuery("StudyplanCategory.findByStatusAndLimit");
int end=(start*pageNumber);
query.setParameter("status", status);
query.setParameter("start", start);
query.setParameter("end", end);
return (List<StudyplanCategory>) query.getResultList();

需要设置开始和结束参数。请帮忙。

最佳答案

正如@DataNucleus 所说,LIMIT 不是 JPQL 中的有效关键字。这不是指定要返回多少行的方法。这是你如何做的:

@NamedQuery(name = "StudyplanCategory.findByStatusAndLimit", 
query = "SELECT s FROM StudyplanCategory s WHERE
s.status =:status")

这将是调用命名查询的代码:

Query query = entityManager.createNamedQuery("StudyplanCategory.findByStatusAndLimit");
int end=(start*pageNumber);
query.setParameter("status", status);
query.setFirstResult(start);
query.setMaxResults(end - start);
return (List<StudyplanCategory>) query.getResultList();

关于hibernate - 如何为命名查询设置参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11650361/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com