반응형
@OneToMany List <> 대 Set <> 차이점
내가 사용하면 차이가 있습니까
@OneToMany
public Set<Rating> ratings;
또는 내가 사용한다면
@OneToMany
public List<Rating> ratings;
둘 다 정상적으로 작동합니다. 목록과 집합의 차이점을 알고 있지만 이것이 최대 절전 모드 (또는 오히려 JPA 2.0)가 처리하는 방식에 차이가 있는지는 모르겠습니다.
지정된 인덱스 열이없는 경우 목록은 Hibernate에 의해 bag으로 처리됩니다 (특정 순서 없음).
Hibernate를 처리 할 때 한 가지 주목할만한 차이점은 단일 쿼리에서 두 개의 다른 목록을 가져올 수 없다는 것입니다. 예를 들어 Person
연락처 목록과 주소 목록 이있는 엔터티가있는 경우 단일 쿼리를 사용하여 모든 연락처와 모든 주소가있는 사람을로드 할 수 없습니다. 이 경우 해결책은 두 개의 쿼리 (카티 전 곱을 피함)를 만들거나 하나 이상의 컬렉션에 a Set
대신 a를 사용하는 것입니다 List
.
그것은 당신이 정의 할 때 최대 절전 모드로 설정을 사용하는 것이 어렵다 equals
및 hashCode
엔티티와 엔티티의 불변의 기능 키가 없습니다.
List를 사용하는 경우 getter 함수에서 'Order BY'절을 지정할 수 있습니다. 세트로는 할 수 없습니다. order by 절은 부분적인 EJBQL을 포함 할 수 있습니다. 예를 들면
@OneToMany
@OrderBy("lastname ASC")
public List<Rating> ratings;
이 필드를 비워두면 목록이 기본 키 값을 기준으로 오름차순으로 정렬됩니다.
참고 URL : https://stackoverflow.com/questions/6562673/onetomany-list-vs-set-difference
반응형
'developer tip' 카테고리의 다른 글
NHibernate의 역 속성 (0) | 2020.09.12 |
---|---|
표준 라이브러리의 어떤 기능을 피해야합니까? (0) | 2020.09.12 |
Java를 사용하여 멀티 파트 / 양식 데이터 POST 요청을하려면 어떻게해야합니까? (0) | 2020.09.11 |
Java는 음수로 모듈러스 계산을 어떻게 수행합니까? (0) | 2020.09.11 |
EF 4.1 예외 "공급자가 ProviderManifestToken 문자열을 반환하지 않았습니다." (0) | 2020.09.11 |