在Rails中,可以如下声明传递关系:
class Author < ActiveRecord::Base
has_many :authorships
has_many :books, :through => :authorships
end
是否有可能在Hibernate中做类似的事情?当我打电话给author.getBooks()
时,我希望Hibernate知道如何将作者与作者联系起来。
答案 0 :(得分:2)
我不相信Hibernate的映射中有任何可以实现此目的的东西,但您可以简单地向getBooks()
类添加Author
方法,该方法在{{1}上调用正确的方法property:
authorships
我不确定为什么ORM需要知道B之间A和C之间的传递关系,如果你可以在它自己的课堂上设置它。
答案 1 :(得分:1)
您可以使用@ManyToMany
和@JoinTable
来解释如何映射关系。
@ManyToMany(targetEntity = Book.class)
@JoinTable(name = "authorships",
joinColumns = {@JoinColumn(name = "author_id")},
inverseJoinColumns = {@JoinColumn(name = "book_id")})
public Set<Book> books;