유창한 nhibernate - 클래스/엔티티 특정 Next_hi 씨앗을 사용할 때 씨앗

StackOverflow https://stackoverflow.com/questions/1400208

  •  05-07-2019
  •  | 
  •  

문제

기본적으로 나는 같은 일을하려고합니다 이 질문 그러나 유창한 nhibernate와 함께.

내 ID 생성 컨벤션은 다음과 같습니다.

    public class IdGenerationConvention : IIdConvention
    {
            public void Apply(IIdentityInstance instance)
            {
                    instance.GeneratedBy.HiLo("1000");
            }
    }

이제 이것은 훌륭하게 작동하지만 모든 클래스는 동일하게 사용됩니다. next_hi.

    create table hibernate_unique_key (
            next_hi INTEGER 
    )

각 클래스가 자신의 클래스를 사용해야한다는 것을 지정하는 방법을 알고 있습니까? next_hi?

명확히하기 위해 customer_next_hi 그리고 order_next_hi, 열에 따라 작동한다고 가정합니다. 그것이 행을 기반으로한다면 괜찮습니다. 각 엔터티가 어떤 행을 사용할 것인지 알고 있다면 next_hi 값.

도움이 되었습니까?

해결책 2

또한 유창한 Nhibernate Google Group 에서이 질문을했으며이를 수행하는 유일한 방법은 Hilo 또는 TableGenerator에서 상속하는 사용자 정의 ID 생성기 클래스를 만드는 것 같습니다. 내가 수집 한 것에서, 핵심 문제는 시드 테이블을 만들기위한 SQL 문이 한 번만 실행되며, 엔터티 특정 열이나 행을 만들기 위해 내장 된 재정의 또는 후크가 없다는 것입니다.

그래서 줄을 따라 무언가 이것 내가해야 할 일입니다. 작업 구현이 있으면 더 게시하겠습니다.

다른 팁

Anthony DeWhirt의 블로그에 게시 된이 문제에 대한 좋은 해결책이 있습니다. http://www.anthonydewhirst.blogspot.co.uk/2012/02/fluent-nhibernate-solution-to-enable.html

흥미로운 질문이지만 왜 그렇게하고 싶은지 궁금합니다. (상당히 사소한) 단점에서 더 많은 DB 요청을 생성 할 것입니다. 거꾸로 당신은 대리 ID 공간을 어떤 요인으로 늘릴 것입니다. 그러나 그들 모두에게 충분히 길지 않아서 충분하지 않습니까? (최대 18,446,744,073,709,551,615 IDS!)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top