많은 Person 엔티티에 매핑되는 House 엔티티가 있다고 가정 해 보겠습니다. 나는 20 명의 거주자가있는 기존의 하인을 적재한다. 나중에 코드에서Hibernate가 saveOrUpdate를 호출 할 때 원치 않는 SELECT를 수행 중임
beginTransaction();
House house = houseDao.find(1L);
commitTransaction();
, 나는 그 집에 새로운 사람을 추가 할 수 있습니다
...
List<Person> people = house.getPeople();
people.add(new Person("Dilbert"));
....
을 내가 전화 할 때 :
session.saveOrUpdate(house);
Hibernate는 21 개 쿼리를 수행 : 1을에 하우스를 선택하고 하우스에있는 기존 인원을 각각 20 명씩 선택합니다.
나는이 상황에서 데이터베이스에 엄청난 피해를주지 않으면 서 새 사람을 집에 추가 할 수 있도록 내가해야 할 일은 무엇인가?
이것은 모두 동일한 세션 내에서 수행됩니다.
죄송합니다. 제 게시물에 Set과 예제 사용 목록을 사용함을 깨달았습니다. 목록으로 설정에서 전환 할 수 있습니다. – celias
가장 좋은 제안은 '집'이 아닌 '사람'을 유지하는 것입니다. +1 –
brilliant - 감사합니다. celias. 정확히 내가 무엇을 찾고 있었는지. – digiarnie