如何使用HQL,多对多?

Nor*_*gey 14 hibernate

在此输入图像描述

这是我的数据库结构.关系很多很多.我想选出一些写过同一本书的作者.使用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]);
    }
Run Code Online (Sandbox Code Playgroud)

Ste*_*ole 24

假设实体名称是Book and Author,而Book具有authors属性:

select a.firstName, a.lastName from Book b join b.authors a where b.id = :id
Run Code Online (Sandbox Code Playgroud)