유창한 nhibernate - 클래스/엔티티 특정 Next_hi 씨앗을 사용할 때 씨앗
-
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!)