2009-09-01 2 views
2

HiLo ID 생성을 사용하도록 애플리케이션을 구성 할 때 데이터베이스에 삽입 된 행당 왕복이 하나씩 표시됩니다. 내가 읽은 모든 문서는 왕복 횟수가 훨씬 적어야한다고 지적했습니다.NHibernate HiLo ID 생성기가 삽입 된 데이터베이스 당 왕복 행을 수행합니다.

내 오브젝트는 모두 일반적으로 (유창) 구성 :

이드 (t => t.Id) .GeneratedBy.HiLo ("MyObject_Identity", "MaxId", "1000");

내 배치 크기는 연결시 75로 설정됩니다.

나는 아마 어리석은 짓을하고있는 것을 알고 있습니다.

답변

0

각 인서트에 대한 왕복이 신분증에 새로운 가치가 있다는 것을 의미합니까? 그렇다면 각 작업에서 SessionFactory의 새 인스턴스를 사용하고 있습니까? SessionFactory는 높은 가치의 검색을 관리합니다. 일반적으로 애플리케이션 인스턴스 당 하나의 SessionFactory 만 가져야합니다 (싱글 톤 또는 IoC 컨테이너를 통해).

+0

예. 단일 세션 팩토리 (실제로는 단일 세션)에서 인스턴스 저장시 단일 왕복을보고있었습니다. 나는 그 이후로 ID를 사용하도록 응용 프로그램을 되돌려 놓았습니다. 내가 알고있는 것은 nhibernate와의 반 패턴이지만 작동한다. 나중에 개체 수준에 배치 크기 속성이 있음을 발견했습니다. 나는 뭔가 잘못 구성된 것으로 생각한다. – JeffreyABecker

+0

나는 이것에 대한 해결책을 찾는 것과 같은 문제를 안고있다. – Restuta

+0

답변을 수락 한 이유는 Google의 문제에 답변하지 않는 것 같습니다. 같은 것을 다시 열어야합니까? – Restuta