JPA标准查询:getCount+;条件
我尝试获取所有未分析的文章(Article.class)计数(analysisted==false)。 遗憾的是,下面的代码返回了完全错误的数字。 有人知道为什么吗JPA标准查询:getCount+;条件,jpa,count,predicate,criteriaquery,Jpa,Count,Predicate,Criteriaquery,我尝试获取所有未分析的文章(Article.class)计数(analysisted==false)。 遗憾的是,下面的代码返回了完全错误的数字。 有人知道为什么吗 CriteriaBuilder cb = entityManager.getCriteriaBuilder(); CriteriaQuery<Long> query = cb.createQuery(Long.class); query.select(cb.count(query.from(Article.class))
CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery<Long> query = cb.createQuery(Long.class);
query.select(cb.count(query.from(Article.class)));
Root<Article> articles = query.from(Article.class);
Predicate condition = cb.isFalse(articles.get(Article_.analyzed));
query.where(condition);
TypedQuery<Long> unanalyzedArticlesAmount = entityManager.createQuery(query);
return unanalyzedArticlesAmount.getSingleResult();
CriteriaBuilder cb=entityManager.getCriteriaBuilder();
CriteriaQuery=cb.createQuery(Long.class);
query.select(cb.count(query.from(Article.class));
根文章=query.from(Article.class);
谓词条件=cb.isFalse(articles.get(articles.analysisd));
查询。何处(条件);
TypedQuery unanalyzedArticlesAmount=entityManager.createQuery(查询);
返回unanalyzedArticlesAmount.getSingleResult();
最后阅读这篇文章:
并找到了以下解决方案:
CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery query = cb.createQuery();
Root<Article> root = query.from(Article.class);
query.select(cb.count(root));
Predicate condition = cb.isFalse(root.get(Article_.analyzed));
query.where(condition);
TypedQuery<Long> unanalyzedArticlesAmount = entityManager.createQuery(query);
return unanalyzedArticlesAmount.getSingleResult();
CriteriaBuilder cb=entityManager.getCriteriaBuilder();
CriteriaQuery=cb.createQuery();
Root=query.from(Article.class);
query.select(cb.count(root));
谓词条件=cb.isFalse(root.get(Article.analysisd));
查询。何处(条件);
TypedQuery unanalyzedArticlesAmount=entityManager.createQuery(查询);
返回unanalyzedArticlesAmount.getSingleResult();