Я хочу запустить этот запрос из JPA из моего кода. Но это не работает.JPA SET IDENTITY_INSERT не работает
Пожалуйста, помогите.
SET IDENTITY_INSERT "+tableName+" ON
UPDATE
Точный код строки это
Query query = entityManager.createNativeQuery("SET IDENTITY_INSERT [tableName] ON");
int updated = query.executeUpdate();
Это дает 0 для обновления. Не дает никаких ошибок при выполнении этой строки. Но когда вы пытаетесь вставить после этого, это дает исключение нарушения ограничений, как показано ниже.
2015-03-09 15:46:52,922 WARN org.hibernate.util.JDBCExceptionReporter.logExceptions:233 - SQL Error: 544, SQLState: 23000
2015-03-09 15:46:52,923 ERROR org.hibernate.util.JDBCExceptionReporter.logExceptions:234 - Cannot insert explicit value for identity column in table 'table_name' when IDENTITY_INSERT is set to OFF.
2015-03-09 15:46:52,924 ERROR org.hibernate.event.def.AbstractFlushingEventListener.performExecutions:324 - Could not synchronize database state with session
org.hibernate.exception.ConstraintViolationException: could not insert: [com.entities.EntityName]
Вы пытались использовать 'em.createNativeQuery()'? –
Да, я пробовал это, и я выполнил код внутри транзакции, перенося операцию вставки между выводом и включением для identity_insert. Но по какой-то причине это не повлияло. – muasif80
Я предполагаю, что все это работает в одной транзакции? –