0
모든 개체가 새로운 개체 개체 컬렉션으로 부모 개체를 저장 (삽입)하려고합니다. 나는 수동으로 \ 업데이트를 저장하도록 지정하고 언제 캐스케이드를 매핑에 사용하지 않고 직접 세션을 플러시하는 것을 선호합니다. ,Hibernate 부모 - 자식 저장 중복 된 SQL 업데이트를 실행했습니다
INSERT INTO PARENT....
INSERT INTO CHILD ....
UPDATE CHILD SET [email protected] WHERE [email protected] //What the point of update if ParentId was set in previous query
이 업데이트 문이 절대적으로 필요하다 :
session.Save(Parent)
foreach (var child in Parent.Childs)
{
session.Save(child);
}
session.Flush()
이 코드는 부모 행을 삽입 할 것으로 예상, 각 자식 행, 그러나 NHibernate에이 SQL을 실행 : 그러니까 기본적으로 내가 좋아하는이 개체 그래프를 저장 ParentId가 이미 INSERT에 올바르게 설정되었습니다. 어떻게 제거합니까? 성능은 나를 위해 매우 중요합니다.
이것을 확인하면 도움이 될 수 있습니다. http://stackoverflow.com/questions/4315791/nhibernate-sets-foreign-key-in-secondary-update-rather-than-on-initial-insert-vio –
매핑? –
@Jani : 정말로 도움이되었습니다. 감사합니다. –