作者与图书之间存在ManyToMany关系。
表:作者
id |名称
表: ASSIGN
* id | author_id | book_id *
表: BOOK
id |标题
但我使用的不是标准的ManyToMany映射,我正在使用下一个
class Book
{
@Id
long id;
String title;
@OneToMany
List<Assign> authors;
}
class Assign
{
@Id
long id;
@ManyToOne
Book book
@ManyToOne
Author author;
}
class Author
{
@Id
long id;
String name;
@OneToMany
List<Assign> books;
}
获取作者姓名所有图书的查询是什么?还有什么查询来获取作者姓名的所有书名?
答案 0 :(得分:1)
您只有两个OneToMany关联。您只需在查询中使用联接,如Hibernate documentation over HQL。
中所述select book from Author author
left join author.books assign
left join assign.book book
where author.name = :name
第二个查询是相同的,除了你只想要书名:
select book.name from Author author ...
旁注:您不应该将自己的分配books
或authors
命名为:这非常令人困惑。将其命名为assigns
。
答案 1 :(得分:0)
什么是获取作者姓名所有图书的查询?
来自b.authors.author.name 的Book b order什么是查询以获取作者姓名的所有图书名称?
通过b.authors.author.name
从Book b order中选择b.title您是否在作者和图书课程中交换了标题和名称?