Hibernate는 many to many entries를 재 작성한다.
annotion을 통해 다른 객체의 콜렉션을 보유하는 도메인 객체가 있습니다.@ManyToMany(fetch=FetchType.LAZY,cascade = { CascadeType.MERGE, CascadeType.PERSIST})
@JoinTable(name = "join_table", [email protected](name="a_id", referencedColumnName = "a_id"), [email protected](name = "b_id", referencedColumnName = "b_id"))
private List<B> BsList;
조인 테이블에서 추가 데이터 열을 보유합니다.
목록을 보유하고 setBsList()
를 호출하는 객체를 사용하여 작업 할 때 추가 열에있는 데이터가 삭제된다는 사실을 발견했습니다. Hibernate는 매번 join 테이블의 행을 다시 쓰게됩니까?
예 "법적"조인 테이블이 아니라는 것을 알고 있지만 위의 경우를 제외하고는 조인 테이블에 매핑이 없습니다. 최대 절전 모드는 이러한 추가 필드를 식별하여 동작을 유지합니까? 아니면 최대 절전 모드가 항상 이러한 다시 쓰기를 수행합니까? –
아니요, 올바르게 기억한다면 Hibernate는 기존 링크를 식별하고 변경 사항을 업데이트/생성/삭제하는 대신 모든 "링크"를 삭제하고 다시 만듭니다. 따라서, 그들은 같은 기록으로 보일지도 모르지만 실제로는 새로운 기록입니다. – jpkrohling