2012-07-12 5 views
0

엔티티 내에 SortedSet이 있습니다. 하지만 가져 오려고하면 정렬되지 않습니다. 나는 최대 절전 모드 또는 jpa를 사용하려고 시도했다. 어떤 이유? 나는 또한 (에 show_sql으로) SQL을 인쇄 한최대 절전 모드 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); 

(내 설정 개체는 너무 비교 구현했습니다)하지만 모두가 순서를 표시하지 않습니다. 알려주십시오. 감사합니다.

+0

이 memory.It에서 당신을 놀라운 일이 아니다, 뉴스 필드의 정의와 자바를 사용 – gkamal

+0

SortedSet의이 비교기로 정렬됩니다 setter 메소드를 제시해주십시오 일 생성 된 SQL에'order by'가 보이지 않습니다. –

+0

@Sort 주석을 삭제 해보세요. – JMelnik

답변

0

JMelnik가 @Sort을 제거하여, 바로, 그것은