我有两个实体,Book和Author。用于搜索的HQL查询(一对多关系)
@Entity
@Table(name="book")
class Book {
private int id;
private Map<Integer, Author> authors = new HashMap<Integer, Author>();
@Id
@GeneratedValue
@Column(name="id_book")
public int getId() {
return this.id;
}
@OneToMany(fetch=FetchType.EAGER)
@JoinTable(name="book_author", joinColumns= {@JoinColumn(name="id_book")},
inverseJoinColumns = {@JoinColumn(name="id_author", table="author")})
@MapKeyColumn(name="order")
public Map<Integer, Author> getAuthors() {
return authors;
}
}
@Entity
@Table(name="author")
class Author {
private int id;
private String lastname;
private String firstname;
@Id
@Column(name="id_author")
@GeneratedValue
public int getId() {
return id;
}
public String getLastname() {
return lastname;
}
public String getFirstname() {
return firstname;
}
}
一本书有许多作者按特定顺序列出。现在我正在尝试创建一个HQL,以便我可以从特定作者那里获取特定姓氏或姓氏或两者的书籍列表。我很困惑如何使用两个实体之间的连接。任何想法?
在此先感谢。
,因为我不想绑定笔者到某本书作为一个作家可以写很多书我没在笔者添加任何idBook 。其实我的困惑是我如何链接三个表格,因为我有一个作者类和一个Book类,他们的链接在数据库的book_author表中定义。我不明白他们是如何在课堂上表现的,或者我如何在HQL中表现他们。任何想法? – suenda
我编辑了我的答案。往上看;你必须为连接表创建一个类。 – Johanna
感谢您的帮助。我希望没有创建BookAuthor,但似乎我必须创建它,我会这样做。再次感谢您的帮助 – suenda