如何使用 JPA 计算行数?

新手上路,请多包涵

我尝试使用 JPA 计算行数。我想使用 where 子句但是我不能。

 CriteriaBuilder qb = entityManager.getCriteriaBuilder();
CriteriaQuery<Long> cq = qb.createQuery(Long.class);
cq.select(qb.count(cq.from(MyEntity.class)));
cq.where();  //how to write where clause
return entityManager.createQuery(cq).getSingleResult();

我如何设置 where 子句,例如 where age=“45”。提前致谢。

原文由 Harun ERGUL 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 494
2 个回答

使用 ParameterExpression 。注意: _未经测试_。

 CriteriaBuilder qb = entityManager.getCriteriaBuilder();
CriteriaQuery<Long> cq = qb.createQuery(Long.class);
cq.select(qb.count(cq.from(MyEntity.class)));
ParameterExpression<Integer> p = qb.parameter(Integer.class);
q.where(qb.eq(c.get("age"), 45));
return entityManager.createQuery(cq).getSingleResult();

参考

原文由 Buhake Sindi 发布,翻译遵循 CC BY-SA 3.0 许可协议

jpa 中最好和最简单的方法:

 public interface YourEntityRepository extends JpaRepository<YourEntity, Serializable> {

Long countByAgeGreaterThan(Integer age);

}

原文由 jdominus 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题