java - 如何在 Hibernate Criteria 中加入后获取行数?

标签 java mysql hibernate criteria

我尝试创建请求:

Criteria criteria = session.createCriteia(User.class);
criteria.setFetchMode(field, FetchMode.JOIN);
int count1 = criteria.list().size(); //340
Number count2 = (Number) criteria.setProjection(Projections.rowCount()).uniqueResult(); //279

如何在不调用 criteria.list().size() 的情况下返回 340

最佳答案

我认为在使用 Projections.rowCount() hibernate 时会忽略

criteria.setFetchMode(field, FetchMode.JOIN);

您可以使用createAlias

criteria.createAlias("field","field", JoinType.LEFT_OUTER_JOIN);

通过在 Hibernate 配置文件中使用 hibernate.show_sql 检查两种情况下由 hibernate 生成的查询

https://docs.jboss.org/hibernate/orm/3.3/reference/en/html/session-configuration.html#configuration-optional

关于java - 如何在 Hibernate Criteria 中加入后获取行数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30753435/

相关文章:

Java JADE - 开发共享 SQLite 数据库的多代理应用程序

php - Laravel 中的数据库结构

java - 有没有办法将值从 YAML 映射到对象列表

java - 套接字异常: Connection Reset for twilio API

java - Java8 中的 Lambda 表达式

php - 有问题的 PHP-MySQL 注册表单

mysql - 如何让 MySQL 识别 LIKE 和 REGEXP 中的多字节字符?

hibernate - 用于从spring Data Jpa中的多个表中获取数据的自定义查询

java - Spring Boot应用程序无法启动嵌入式容器

java - Hibernate 在保存时创建新行而不是更新