0

エンティティ内に SortedSet があります。しかし、フェッチしようとすると、ソートされません。hibernate または jpa を使用しようとしましたが、どちらも機能しません。何らかの理由?(私のセットエンティティも同等のものを実装しています)

    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をオンにして)が、順序はまったく表示されません。お知らせ下さい。ありがとう!

4

1 に答える 1

0

JMelnik は正しいです。@Sort を削除することで、機能しました

于 2012-07-19T19:09:07.380 に答える