Im은 내가 자바에서 전에 건너 온 것을 놀라게했다. 데코레이터 객체를 사용하여이 문제를 해결할 수 있다는 것을 알고 있지만 누구나이 작업을 수행하는보다 간결한 방법을 생각할 수 있는지 궁금합니다.비즈니스 로직 ID로 목록 정렬
ID 목록을받는 방법이 있습니다. 메서드 내에서 일부 조작을 수행하고 db 등에서 개체를 검색합니다. 메서드가 끝나면 결과 목록의 순서가 보장되지 않습니다. 메서드에 전달되는 ID에 ID로 순서를 지정하고 싶습니다. 이 ID는 숫자로 정렬 할 수 없습니다.
서있 예를
List<MyObject> get (List<Integer> ids) {
//get from db etc and do manipluation
//MyObject contains an id which corresponds to one of the ids passed in
//order the list according to the order of the ids parameter
}
ID는 순서대로 1,2,3를 포함 할 수 있습니다. 또는 4,7,3,1,7 VO가 반환되기를 원하는 순서대로 ID가 전달 된 순서입니다.
VO를 꾸미고 다른 매개 변수를 추가하여 일부를 허용 할 수 있습니다. 자연 순서지만 이것은 매우 간단한 코드를위한 것 같습니다. 내가 처음에 말했듯이, 임은 이미이 모든 것을 지나서 놀라지 않았다.
좋은 아이디어에 대한 아이디어가 있습니까?
감사합니다.
DB에서 데이터를 가져 오는 중이므로 데이터베이스에서 검색 할 때 정렬하지 마십시오. –
좋은 지적, 나는 데이터베이스 검색에서 사용자 지정 ID 필드를 사용하여 정렬 할 수 있습니다 잊어 버렸습니다. 관심이없는 JPA를 여기에서 점검 할 것입니다. 그러나 여전히 VO를 조작 할 때 문제가있을 수 있다고 생각합니다. 이상적으로는리스트를 사용하고 있다면 조작 – RNJ
의 끝에서 그것을하고 싶습니다. 당신은 equals와 hashcode 메소드를 재정의 한 다음 list.sort를 재정의 할 수 있습니다. –