java - 带有 withClause 参数的 Hibernate createAlias() 会导致惰性收集

标签 java hibernate

当创建使用“withClause”的 hibernate 条件查询时,关联始终是惰性的。

Criteria criteria = session.createCriteria(A.class, "a");
criteria.setFetchMode("a.b", FetchMode.JOIN);
criteria.createAlias("a.b", "b", JoinType.INNER_JOIN, Restrictions.eq("b.someOtherColumn", 5));

List list=criteria.list();

在这种情况下,“b”将导致惰性集合。有没有办法仍然使用条件查询来解决这个问题?我必须使用 withClause 来获取正确的根实体。

最佳答案

像这样使用它:

Criteria criteria = session.createCriteria(A.class, "a");
criteria.createAlias("a.b", "b");
criteria.add(Restrictions.eq("b.someOtherColumn", 5));

List list=criteria.list();

关于java - 带有 withClause 参数的 Hibernate createAlias() 会导致惰性收集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39312444/

相关文章:

java - 将 Hibernate 配置为 Tomcat Apache 和 MySQL 上的 JPA 2.0 提供程序的学习资源

java - 我的 DAO 策略可以吗?

java - Hibernate 5.2.7 - java.lang.NoSuchMethodError : org. hibernate.engine.spi.SessionFactoryImplementor.getProperties()Ljava/util/Map;

java - 初始 SessionFactory 创建失败.java.lang.ClassFormatError

java - 如何动态地将 String 转换为 int (Reflection API)

java - 使用 Spring 和 Hibernate 自动创建/更新表

java - 如何从 Java 中的字节数组创建 Zip 文件

java - 跳过启动画面

java - 异步 SQL 查询返回结果 (Java)

java - 巧妙地将 Rep[Option[ZonedDateTime]] 与 ZonedDateTime 进行比较