Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jpa 其中b.maxOrdini>maxordine抛出“FROM子句中未定义标识变量'maxordine'”_Jpa_Jpql - Fatal编程技术网

Jpa 其中b.maxOrdini>maxordine抛出“FROM子句中未定义标识变量'maxordine'”

Jpa 其中b.maxOrdini>maxordine抛出“FROM子句中未定义标识变量'maxordine'”,jpa,jpql,Jpa,Jpql,我尝试在Java EE应用程序中编写此查询: public List<Fornitore> findByMaxOrdine(int maxordine) { Query query; query = em.createQuery("SELECT b FROM Fornitore b WHERE b.maxOrdini > maxordine"); query.setParameter("maxordine", maxordine); retur

我尝试在Java EE应用程序中编写此查询:

public List<Fornitore> findByMaxOrdine(int maxordine) 
{
    Query query;
    query = em.createQuery("SELECT b FROM Fornitore b WHERE b.maxOrdini > maxordine");
    query.setParameter("maxordine", maxordine);
    return query.getResultList();
}
我不明白它为什么不起作用。 谢谢您的帮助。

因为maxordine是一个命名参数,所以您的查询应该是:

"SELECT b FROM Fornitore b WHERE b.maxOrdini > :maxordine"
如果愿意,也可以使用位置参数,而不是命名参数。然后,重新计算的方法如下所示:

public List<Fornitore> findByMaxOrdine(int maxordine) {
    return em.createQuery("SELECT b FROM Fornitore b WHERE b.maxOrdini > ?1")
           .setParameter(1, maxordine);
           .getResultList();
}
您是否尝试从Fornitore b中选择b,其中b.maxOrdini>:maxordine?
public List<Fornitore> findByMaxOrdine(int maxordine) {
    return em.createQuery("SELECT b FROM Fornitore b WHERE b.maxOrdini > ?1")
           .setParameter(1, maxordine);
           .getResultList();
}