2010-03-23 5 views
0

엔티티 매핑에서 NHibernate 캐스케이드 설정은 정적입니다. 어쨌든 동적으로 대량 데이터 트랜잭션 중에 Hiberate에서 값 비싼 계단식 연산을 피하기 위해 "계단식"설정을 코드에서 비활성화 할 수 있습니까? 우리는 NHibernate (auditing)에 의해 캡쳐 된 엔티티의 변경을 필요로하기 때문에 저장 프로 시저 또는 원시 SQL을 사용하고 싶지 않습니다.동적으로 NHibernation 캐스케이드를 깨는 방법

답변

0

동적으로 계단식 연결을 해제 할 수 없습니다.

StatelessSession을 사용할 수 있습니다.

가끔 이 특정 관계에서 계단식으로 연결되어 있지 않으면 설정하지 마십시오. 캐스케이드는 좋은 기능이지만, 이 필요하지 않습니다. 제대로 작동하려면이 필요합니다.

+0

감사를 계단식하지 않으려면 매핑을 당신의 매핑과 인터셉터를 사용하고 있지만 변경 새로운 SessionFactory를 구축 할 수 있지만, StatelessSession가 감사 기능을 비활성화 할 인터셉터를 무시합니다. –

0

당신이 제안에 대한

var config = BuildConfiguration(); 
var classmapping = config.GetClassMapping("myentity"); 
classmapping.GetProperty("myprop").Cascade = "none"; 

var bulkinsertSf = config.BuildSessionFactory(); 
관련 문제