2013-10-27 2 views
0

다음 예에서 회사에서 사람을 삭제하려면 무엇을 의미합니까?OneToMany 목록에서 entite를 올바르게 제거하는 방법은 무엇입니까?

class Company { 
    @OneToMany(mappedBy = "company"); 
    List<Person> persons; 
} 

class Person { 
    Company company; 
} 

즉, Company의 사람 목록은 항상 게으른 것으로 간주됩니다. 사람 (DB에서)을 삭제한다는 것은 해당 인물 (예 : ID)을 제거하고 속한 회사의 persons 목록에서 아무 것도 변경할 필요가 없다는 것을 의미합니까?

답변

2

persons에서 해당 사용자를 삭제하고 회사 개체를 저장해야합니다.

company.getPersons().remove(person); 

회사 개체를 저장 한 후 사람 개체가 데이터베이스에서 자동으로 제거되어야하는 경우 orphanRemoval 플래그를 설정하십시오. 자세한 내용은 the documentation을 참조하십시오.

/편집 : 최대 절전 모드로 질문에 태그를 추가 했으므로 all-delete-orphan 캐스케이드 옵션이 도움이 될 수 있습니다.

+0

그러나 ontomany는 기본적으로 가져 오지 않는 지연 콜렉션이므로 빈 목록으로'company.getPersons()'를 작성하지 않습니까? – membersound

+0

주어진 코드에서 "비어 있지 않은"것은 아닙니다. 'getPersons()'를 호출하면 목록이 평가되어 제거 프로세스가 작동합니다. –

관련 문제