2011-02-25 3 views
5

nhibernate와 매핑 된 모델을 사용하여 데이터베이스에 데이터를 대량으로 가져와야합니다. ID 용 guid.comb 생성기를 설정했습니다. 임시 guid.comb ID 생성기를 사용하지 않도록 설정 한 ID를 사용하여 데이터를 가져 오는 방법이 있습니까?대량 작업을위한 NHibernate 비활성화 ID 생성기

답변

4

일시적으로 ID 생성기를 할당 됨으로 변경할 수 있습니다. 그런 다음 가져 오기가 끝나면 다시 COMB Guids로 전환하십시오. SaveOrUpdate() 대신 session.Save()를 명시 적으로 호출해야합니다. 그게 당신의 문제를 해결합니까?

+4

일회성 작업이 아닌 대량 가져 오기를 수행하려는 경우 SessionFactory를 작성하기 전에 메모리의 Configuration 객체를 수정하여 ID를 할당 됨으로 변경할 수 있습니다. 이렇게하면 두 세트의 hbm.xml 파일을 유지할 필요가 없습니다. 이 블로그 게시물에서 일시적으로 조회 테이블을 업데이트 할 수있는 유사한 기술에 대해서도 설명했습니다. http://jameskovacs.com/2007/11/04/testing-immutable-entities-with-nhibernate/ –

+0

안녕하세요, James 고맙습니다. 해결책 인 것 같다. 한 가지 질문 : 계단식 엔티티에 대해 "ID 생성기"비활성화가 가능합니까? 고마워. 추신. 내 질문의 진정한 대답으로 제안을 어떻게 설정할 수 있습니까? 덕분에 – Hoghweed

+0

필립이 ID를 변경하는 좋은 생각이 될 수 있지만 어떻게 할 것인지 묻는 있었다, 그리고 일괄 작업을 할 표준 세션을 사용하는 제안하지 않지만 대신 대량 작업을 할 수있는 무국적 세션을 사용해야합니다 많은 이유들로 인해. 고마워 어쨌든 – Hoghweed

관련 문제