0
我有一个实体内的SortedSet。但是,当我尝试获取它不排序。我试图使用休眠或jpa,都不工作。任何原因? (我的设置实体实现可比太)休眠4不排序
private SortedSet<News> news = new TreeSet<News>();
public void setNews(SortedSet<News> news) {
this.news = news;
}
@OneToMany(fetch = FetchType.EAGER, cascade = {CascadeType.PERSIST, CascadeType.MERGE })
@JoinTable(name = "NEWSGROUP_NEWS", joinColumns = @JoinColumn(name = "NEWSGROUP_ID"), inverseJoinColumns = @JoinColumn(name = "NEWS_ID"))
@OrderBy("title")
@Sort(type=SortType.COMPARATOR, comparator=NewsComparator.class)
public SortedSet<News> getNews() {
return this.news;
}
public static class NewsComparator implements Comparator<News>
{
@Override
public int compare(News news1, News news2) {
return news1.getTitle().compareTo(news2.getTitle());
}
}
吾道
NewsGroup newsGroup = (NewsGroup)this.hibernateSessionFactory.getCurrentSession().get(NewsGroup.class, id);
我还印制了SQL(与show_sql),但它不显示在所有订单。 请指教。 谢谢!
请出示的消息字段的定义和setter方法 – gkamal 2012-07-12 17:53:06
的SortedSet,与比较器进行排序,使用Java,在memory.It毫不奇怪你在生成的SQL中没有看到任何'order by'。 – 2012-07-12 21:12:48
尝试删除@Sort批注。 – JMelnik 2012-07-13 10:58:30