Java Hibernate@orderby似乎不起作用
我有两个实体,用户和评论,它们都是POJO的。 注释引用了用户Java Hibernate@orderby似乎不起作用,java,hibernate,Java,Hibernate,我有两个实体,用户和评论,它们都是POJO的。 注释引用了用户 @ManyToOne @JoinColumn(name = "user_id") private User user; // saves the User's id as a foreign key to Comment table 注释还有一个字段addedate,它是一个日期 @OrderBy @Column(name = "date_added") private Date addedDate; 当Hibernate
@ManyToOne
@JoinColumn(name = "user_id")
private User user; // saves the User's id as a foreign key to Comment table
注释还有一个字段addedate,它是一个日期
@OrderBy
@Column(name = "date_added")
private Date addedDate;
当Hibernate从数据库中检索数据时,我希望注释按Addedate排序,但遗憾的是它按用户排序。
即使我用@OrderBy(javax.persistence.OrderBy)注释字段“addedDate”,它似乎也没有任何效果
我想要的是:
userX earlyComment,
userY earlyComment,
userX lateComment,
用户评论
但我得到的是:
userX earlyComment,
userX lateComment,
userY earlyComment,
用户评论
我在这里遇到过类似的问题,但我发现没有一个能解决我的问题。我做错了什么?非常感谢您的帮助。首先,我认为当您拥有
集合
作为成员时,应使用@OrderBy
注释,以便对集合元素进行排序
因此,在外键引用上添加@OrderBy
是没有用的,因为单个对象的顺序无关紧要
看说
此注释指定在检索关联时集合值关联元素的顺序
现在,对于您的解决方案,您需要在查询DB时添加ORDERBY EXPLICIT子句。如何检索注释?您是在执行查询,还是它们是集合的一部分?“现在对于您的解决方案,您需要在查询DB时添加ORDERBY EXPLICIT子句。”这是正确的方法。