Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
687 views
in Technique[技术] by (71.8m points)

hibernate - How do I do with HQL, many to many?

enter image description here

Here is my database structure. Relation many to many. I want to make a selection of authors who have written the same book. With SQL, I did. How do I do with 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]);
    }
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Assuming the entity names are Book and Author and that Book has authors attribute:

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...