hibernate - 我如何处理 HQL,多对多?

标签 hibernate

enter image description here

这是我的数据库结构。多对多的关系。我想选出写过同一本书的作者。使用 SQL,我做到了。我如何处理 HQL?

   Query query = session.createSQLQuery("SELECT FirstName, LastName FROM authors, books, author_book as ab WHERE ab.authorID=authors.authorID AND ab.bookID = books.bookID AND ab.bookID = :id");
   query.setInteger("id", 1);
   List list = query.list();
   Iterator<Object[]> iter = list.iterator();
   while (iter.hasNext()) {
       Object[] obj = iter.next();
       System.out.println(obj[0] + " " + obj[1]);
    }

最佳答案

假设实体名称是 Book 和 Author 并且 Book 具有 author 属性:

select a.firstName, a.lastName from Book b join b.authors a where b.id = :id

关于hibernate - 我如何处理 HQL,多对多?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10855930/

相关文章:

java - hibernate 批量插入 - 冲洗如何工作?

Java : Convert Jackson (JSON) class to Entity (JPA) Class

java - 如何有效地从数据库提供 i18n 消息

java - Hibernate映射保存问题

java - Spring注释与hibernate集成中的文件未找到异常

java - 如何使用 Hibernate Lucene 搜索对挪威语字符(Æ、Ø 和 Å)进行不区分大小写的排序?

mysql - 为多对多关系创建 HQL 查询

java - JPA 在循环之前或之后合并不正确

ruby-on-rails - Rails 没有 ActiveRecord 的好处,Grails 没有 GORM

hibernate - 使用注解映射 Hibernate 中的多级继承