Hibernate @orderby似乎不起作用

时间:2012-08-11 09:59:44

标签: java hibernate

我有两个权限,User和Comment,它们都是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)注释“addedDate”字段,它似乎也没有任何效果。

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

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

我在这里似乎有类似的问题,但我找不到解决了我的问题 我做错了什么?非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

首先,我认为当@OrderBy作为成员时,Collection注释应该适用,以便可以对集合元素进行渲染。

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

请参阅Order By

  

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

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