Hibernate 检查两个不相关列是否相等

标签 hibernate criteria hibernate-criteria

我有以下示例实体

class Book{
  int id
  String name
  int sid
}

class Author {
   int id
   String name
   List<Book> books
   int mid
}

这不是一个好的设计,我知道这只是试图解释一个场景。

现在我的问题是,有什么方法可以检查两个不相关列的相等

例如

session.createCriteria(Author.class, "author")
       .createAlias("books", "book")
       .add(Restrictions.eq("author.mid","book.sid")
       .list()

可以吗?

最佳答案

在我看来,Criteria API 不支持连接不相关的实体。尝试按如下方式使用 HQL 而不是 Criteria API。

session.createQuery("from Book as book INNER JOIN Author as author WHERE book.sid = author.mid").list();

关于Hibernate 检查两个不相关列是否相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52367695/

相关文章:

java - 如何在Hibernate中添加数据库更改的监听器?

java - @CollectionTable 和 @ElementCollection 用法

spring - 相当于 spring-data-jpa 中的标准

.net - SetFetchMode 调用被忽略

java - hibernate ,获取重复值

java - hibernate 条件查询以获取特定列

java - hibernate 的 JPA 实现是否缺少实现?

java - 在 Java 中存储和检索 copmosit 对象

java - Hibernate criteria 查询不同对象的不同属性

Java Hibernate 标准多对一