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
Jakarta ee JPQL:列中的数字总和_Jakarta Ee_Jpa_Dao_Jpql - Fatal编程技术网

Jakarta ee JPQL:列中的数字总和

Jakarta ee JPQL:列中的数字总和,jakarta-ee,jpa,dao,jpql,Jakarta Ee,Jpa,Dao,Jpql,我是JPQL新手,有一个“复杂”的查询不起作用: 我正在尝试使用以下代码获取数据库中某列数据的总和: 布努斯道酒店 @Override public int getTotalBonus(int MatiereId) { Query requete = em.createNamedQuery("Seance.getTotalBonus"); requete.setParameter("x", MatiereId); return requete.getFirstRe

我是JPQL新手,有一个“复杂”的查询不起作用:

我正在尝试使用以下代码获取数据库中某列数据的总和:

布努斯道酒店

    @Override
public int getTotalBonus(int MatiereId) {
    Query requete = em.createNamedQuery("Seance.getTotalBonus");
    requete.setParameter("x", MatiereId);
    return requete.getFirstResult();
}
在奖金实体中:

...
@NamedQuery(name = "Seance.getTotalBonus", query = "select sum(e.BonusNumber) from Bonus e WHERE e.matiere.matiereId = :x")
...
在当地

@Local
public interface BunusDaoLocal{

    int getTotalBonus();
}

但是当我检索到这个数字时,它只给我-1作为结果

启用日志记录并检查生成的SQL是否正确。如果是,请尝试将SQL作为本机SQL查询执行,是否得到正确的结果


您使用的JPA提供程序是什么?

以及“从奖金e中选择e.BonuNumber”的所有结果加起来是什么?@Chris我刚刚修改了代码,但仍然有相同的结果。@JBNizet是,但结果至少应该是1,而不是-1。另一个问题,在BonuDao中,我是否应该使用
return requete.getFirstResult()
获取一个int值作为请求的和?忘记我上面说的。getFirstResult()的作用与您认为的不同。使用getSingleResult()执行查询并获取其唯一结果。
Integer result=(Integer)query.getSingleResult()(可能是长的,而不是整数)。你是否在不知道演员阵容的情况下使用JPA?如果是的话,先学习基础知识。JPA是一只复杂的野兽。我最终用简捷的解决方案解决了这个问题。非常感谢。