nhibernate 및 firebird로 ID를 어떻게 생성합니까?
-
03-07-2019 - |
문제
Nhibernate를 사용하여 몇 가지 새로운 개체를 Firebird 데이터베이스에 삽입하려고합니다.
"다음 시퀀스 값을 얻을 수 없음 [SQL : SQL을 사용할 수 없음]오류가 발생합니다.
현재 내가 사용하고있는 매핑은 다음과 같습니다. 참고 anml_evnt는 내가 사용하려는 생성기의 이름입니다.
<id name="Id" column="ID" type="integer">
<generator class="sequence">
<param name="sequence">ANML_EVNT></param>
</generator>
</id>
해결책
여전히 여기서 답을 찾고 있다면 여기에서 내가 성공적으로 사용한 방법입니다.
"기본"생성기를 사용합니다. SQL Server에 대한 지원을 프로그램에 추가 할 때 Nhibernate의 유일한 것은 Firebird와 SQL Server가 "자동 증분 ID"열을 구현하기 때문에 변경 해야하는 유일한 것은 "기본"으로 변경해야했기 때문입니다. Firebird에서는 명명 된 발전기를 사용하고 SQL Server에서 "시퀀스"매개 변수를 무시하고 내장 된 자동 점수를 사용합니다.
내가 말하는 내용의 예는 다음과 같습니다.
<id name="Id" column="ID">
<generator class="native">
<param name="sequence">ANML_EVNT</param>
</generator>
</id>
Gcores가 대답했듯이 모든 말을 통해 구성에 잘못된 것은 ANML_EVNT 이후의 추가 ">"입니다.
다른 팁
괜찮아 보입니다. ANML_EVNT 이후의 문제는 엔드 브래킷이 아닙니다.
<id name="Id" column="ID" type="integer">
<generator class="sequence">
<param name="sequence">ANML_EVNT</param>
</generator>
</id>
제휴하지 않습니다 StackOverflow