2011-03-16 4 views
0

NHibernate/Spring을 처음 사용하고 쿼리를 실행하기 전에 ID 컬럼을 OFF로 설정하고 이후에 ON으로 설정해야하는 쿼리가있다. 기본적으로 로그 테이블에서 테이블에 레코드를 다시 삽입하고 ID를 동일하게 유지해야합니다.동적으로 nHibernate에서 ID 필드를 on/off로 설정한다.

"SET IDENTITY_INSERT primarykeyfield OFF"를 시도 할 때, Hibernate는 먼저 SELECT 또는 INSERT를 기대하기 때문에 실행할 수 없다고 말합니다.

아이디어가 있으십니까?

답변

1

SQL 명령을 HQL로 실행하려고합니다.

CreateQuery 대신 CreateSQLQuery을 사용하십시오.

+0

먼저 CreateSQLQuery (SET IDENTITY OFF)를 실행하고 CreateQuery를 사용하여 다른 쿼리를 만들어 레코드를 이동하고 실행해야합니까? 그런 다음 CreateSQLQuery를 사용하여 다른 명령문 (SET IDENTITY ON)을 실행 하시겠습니까? – osij2is

+0

@ osij2is : 예. 그러나 엔티티가 신원 정보 생성기를 사용하고 있다면 HQL을 사용하여 특정 값을 삽입 할 수 없습니다. SQL을 사용해야 할 수도 있습니다. –

+1

테이블에서 원시 ID 생성 프로그램을 사용하고 있습니다. 해당 ID의 ID 속성을 해제/해제 할 수 없습니까? – osij2is

관련 문제