728x90
A Model의 정렬을 주고
A 에 연결된 onetomany B 객체 목록을 FetchMode.JOIN 사용시
order by 정렬 순서문제로 인해 결과 값이 다르게 나온다.
예)
hibernate query : ~~~~ order by B객체의 정렬값, A객체의 정렬값
원하는건 : ~~~ order by A객체의 정렬값 , B객체의 정렬값
==>JOIN시 어쩔수 없는 스펙사양인듯함.
==>하이버네이트에서는 정렬 방식을 또 한가지 지원함
List 객체를 자바단에서 재정렬 시키도록 설정할 수 있음.
@OneToMany(fetch=FetchType.EAGER)
@Fetch(FetchMode.JOIN)
@JoinColumn(name="MASTER_SKIN_ID", referencedColumnName="MASTER_SKIN_ID", updatable=false, insertable=false)
//@OrderBy("sortNo asc")
@Sort(type = SortType.COMPARATOR, comparator=MasterSkinImageComparator.class)
private List<MasterSkinImage>imageList;
================================
MasterSkinImageComparator .java
package k2web.com.cop.masterskin.service.model;
import java.util.Comparator;
public class MasterSkinImageComparator implements Comparator<MasterSkinImage>{
@Override
public int compare(MasterSkinImage o1, MasterSkinImage o2) {
// TODO Auto-generated method stub
return o1.getSortNo().compareTo(o2.getSortNo());
}
}
=>쿼리문에서는 정렬없이 가져오고, 결과을 받은 후 자바단에서 리스트 컬렉션을 재정렬함.!
A 에 연결된 onetomany B 객체 목록을 FetchMode.JOIN 사용시
order by 정렬 순서문제로 인해 결과 값이 다르게 나온다.
예)
hibernate query : ~~~~ order by B객체의 정렬값, A객체의 정렬값
원하는건 : ~~~ order by A객체의 정렬값 , B객체의 정렬값
==>JOIN시 어쩔수 없는 스펙사양인듯함.
==>하이버네이트에서는 정렬 방식을 또 한가지 지원함
List 객체를 자바단에서 재정렬 시키도록 설정할 수 있음.
@OneToMany(fetch=FetchType.EAGER)
@Fetch(FetchMode.JOIN)
@JoinColumn(name="MASTER_SKIN_ID", referencedColumnName="MASTER_SKIN_ID", updatable=false, insertable=false)
//@OrderBy("sortNo asc")
@Sort(type = SortType.COMPARATOR, comparator=MasterSkinImageComparator.class)
private List<MasterSkinImage>imageList;
================================
MasterSkinImageComparator .java
package k2web.com.cop.masterskin.service.model;
import java.util.Comparator;
public class MasterSkinImageComparator implements Comparator<MasterSkinImage>{
@Override
public int compare(MasterSkinImage o1, MasterSkinImage o2) {
// TODO Auto-generated method stub
return o1.getSortNo().compareTo(o2.getSortNo());
}
}
=>쿼리문에서는 정렬없이 가져오고, 결과을 받은 후 자바단에서 리스트 컬렉션을 재정렬함.!
728x90
'Hibernate' 카테고리의 다른 글
hibernate Could not find setter (모델 ProjectionList 오류) (1) | 2016.06.02 |
---|---|
select, save update 시 디비 특정 function을 호출해야될경우 (0) | 2016.04.06 |
hibernate criteria query 조건문 (0) | 2016.02.23 |
하이버네이트 모든 테이블명 조회 (0) | 2015.11.23 |