0

我有两个实体,用户和评论,它们都是 POJO。评论有对用户的引用。

@ManyToOne
@JoinColumn(name = "user_id")  
private User user;  // saves the User's id as a foreign key to Comment table

评论还有一个字段 addedDate,它是一个日期。

@OrderBy
@Column(name = "date_added")
private Date addedDate;

当 Hibernate 从数据库中检索数据时,我希望评论按 addedDate 排序,但遗憾的是它按用户排序。即使我用 @OrderBy (javax.persistence.OrderBy) 注释字段“addDate”,它似乎也没有任何效果。

我想要的是:userX earlyComment,userY earlyComment,userX lateComment,userY lateComment,

但我得到的是:userX earlyComment,userX lateComment,userY earlyComment,userY lateComment,

我在这里似乎有类似的问题,但我发现没有一个能解决我的问题。
我做错了什么?任何帮助是极大的赞赏。

4

1 回答 1

2

首先,我相信@OrderBy注释应该适用于您Collection作为成员的情况,以便可以对集合元素进行排序。

因此,添加@OrderBy外键引用没有用,因为对于单个对象排序无关紧要。

订单

此注释指定在检索关联时集合值关联的元素的顺序。

现在,对于您的解决方案,您需要在查询数据库时添加 order by 显式子句。

于 2012-08-11T10:12:36.913 回答