有序的休眠关系

时间:2014-05-02 17:56:21

标签: java hibernate orm

我有两个实体,书籍和愿望清单。我的愿望清单包含书籍。我希望按照他们被添加到愿望清单中的相同顺序获取我愿望清单中的书籍集合。

@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinTable(name = "WISHLISTS_BOOKS", joinColumns = { @JoinColumn(name = "BOOK_ID") }, inverseJoinColumns = { @JoinColumn(name = "WISHLIST_ID") })
private Set<Book> books;

这是我被卡住的地方。有一个@OrderBy注释,但据我所知,它指的是书中用来排序的字段。就我而言,由于一本书可以属于多个愿望清单,我不能这样做。相反,我尝试在WISHLISTS_BOOKS连接表中创建一个added_ts时间戳字段,但我不确定如何引用它。

任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

您可以使用@OrderColumn(name =“added_ts”)来实现订购。

@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinTable(name = "WISHLISTS_BOOKS", joinColumns = { @JoinColumn(name = "BOOK_ID") }, inverseJoinColumns = { @JoinColumn(name = "WISHLIST_ID") })
@OrderColumn(name = "added_ts")
private Set<Book> books;