자바 실체 클래스 에서 set 는 대상 의 한 필드 에 따라 set 를 정렬 합 니 다.

배경:
User 실체 클래스 의 속성 은 Set직위 변경 필드 입 니 다.
다음 과 같다.

Position Change 실체 클래스 의 속성 은 positionStartDate 가 언제 부터 이 직무 를 맡 았 는 지 필드 입 니 다.

현재 사용자 라 는 대상 을 조회 할 때 Set에서 사용자 의 최신 직무 기록 을 얻 을 수 있 습 니 다.즉,현재 사용자 가 처 한 직무 정 보 를 보 여 주 는 것 입 니 다.
하지만 Set 는 항상 무질서 합 니 다.Set 에서 Position Change 의 position Start Date 시간 최신 하 나 를 꺼 내 고 싶 습 니 다.그리고 User 를 꺼 낼 때 바로 좋 습 니 다.제 가 직접 가 져 와 서 사용 하면 됩 니 다.
수요 소개 완료
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
해결 경로:User 실체 에 List를 새로 설정 하여 set 를 자신의 생각 대로 정렬 한 결 과 를 설정 합 니 다.
사용 하 는 곳 에서 List 의 값 을 직접 가 져 오 면 됩 니 다.

import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
/**
* User   
*/
@Entity
@Table(name = "user", catalog = "performance")
@JsonIgnoreProperties(value={"workaffs"})
public class User implements java.io.Serializable {
private Set<Positionchange> positionchanges = new HashSet<Positionchange>(0);//     
private List<Positionchange> positionChanges ;//    List<>
//  hibernate          
@Transient
public List<Positionchange> getPositionChanges() {
positionChanges = new ArrayList<Positionchange>(positionchanges);
Collections.sort(positionChanges, new Comparator<Positionchange>() {
@Override
public int compare(Positionchange o1, Positionchange o2) {
return o1.getPositionStartDate().after(o2.getPositionStartDate()) ? -1 : 1;
}
});
return positionChanges;
}
public void setPositionChanges(List<Positionchange> positionChanges) {
this.positionChanges = positionChanges;
}
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기