,可以如下聲明一個傳遞關係:休眠等效的ActiveRecord的的has_many的:通過在Rails
class Author < ActiveRecord::Base
has_many :authorships
has_many :books, :through => :authorships
end
是否有可能做在Hibernate中類似的東西?當我打電話給author.getBooks()
時,我想讓Hibernate知道加入作者的書籍。
,可以如下聲明一個傳遞關係:休眠等效的ActiveRecord的的has_many的:通過在Rails
class Author < ActiveRecord::Base
has_many :authorships
has_many :books, :through => :authorships
end
是否有可能做在Hibernate中類似的東西?當我打電話給author.getBooks()
時,我想讓Hibernate知道加入作者的書籍。
我不相信這是在Hibernate的映射任何可以做到這一點,但你可以簡單地添加一個getBooks()
方法你Author
類呼籲authorships
財產正確的方法:
public class Author {
public Collection<Book> getBooks() {
if (this.authorships != null) {
return this.authorships.getBooks();
}
return null;
}
}
我我不確定爲什麼ORM需要知道B和A之間的傳遞關係,如果你可以直接在類中設置它。
您可以使用@ManyToMany
和@JoinTable
來解釋如何映射關係。
@ManyToMany(targetEntity = Book.class)
@JoinTable(name = "authorships",
joinColumns = {@JoinColumn(name = "author_id")},
inverseJoinColumns = {@JoinColumn(name = "book_id")})
public Set<Book> books;
謝謝,這是我目前的解決方法。問題(這可能是一個不同的問題)是當你添加單表繼承,並希望基於關聯的類獲得多態聯接時。 –