2009-07-20 2 views
4

프로젝트 중 하나에서 NHibernate 2.1.0.4000을 사용하고 있습니다. adonet.batch_size ~ 을 cfg 파일에 설정했는데 삽입 문이 단일 문으로 처리되는 것을 볼 수 있습니다. 업데이트가 제대로 작동하는 것 같습니다. 무슨 일이야?NHibernate 2.1.0.4000이 배치 삽입을 좋아하지 않는 것 같습니다

업데이트 날짜 : 기본 키 생성기로 ID를 선택했기 때문입니까?

<id name="Id" column="Id" unsaved-value="0" type="Int32"> 
    <generator class ="identity"></generator> 
</id> 
+0

발견 (http://groups.google.com/group/nhusers/browse_thread/thread/d4c8fd9625ef5f32/55c7a8db66f62a39?hl=ko&lnk=gst&q=batch_size&pli=1). 그러나 이것이 의미하는 바는 확실하지 않습니다. – Jeff

+0

http://nhibernate.info/doc/nhibernate-reference/batch.html : * 13 장. 일괄 처리 * : "ID 식별자 생성기를 사용하는 경우 NHibernate는 ADO 레벨에서 일괄 삽입을 투명하게 비활성화합니다." – ngm

답변

11

특정 NHibernate 버전과 관련된 문제는 알지 못합니다.

엔티티의 ID 생성기로 native을 사용하고 있습니까? 이렇게하면 생성 된 ID를 다시 선택하여 모든 삽입이 강제 실행됩니다. 이는 데이터베이스가 모든 ID를 생성해야하기 때문입니다. 또한 일괄 처리가 업데이트에서 작동하는 이유를 설명합니다.

가능한 경우 예 : Google로 전환해야합니다. hilo 전략 또는 심지어 쉽게 읽을 수있는 ID를 신경 쓰지 않는다면 guid입니다.

Fabio는이 주제와 관련하여 재미있는 게시물 here을 가지고 있습니다.

+0

예 SQL Server 2005 ID (생성 된 int)를 기본 키로 사용하고 있습니다. 이것은 이유를 설명합니다. 고맙습니다. – Jeff

+0

기존 데이터베이스로 작업 중이므로 ID를 변경할 수 없습니다. – Jeff

+1

신원 발생기 설명 http://fabiomaulo.blogspot.com/2009/02/nh210-generators-behavior-explained.html –

관련 문제