我有兩個實體,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