Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

JPA SET IDENTITY_INSERT nie działa

To i to pomogły mi i mam to działa jak poniżej.

Również z tego link Otrzymałem odpowiedź, że JPA nie obsługuje operacji DDL.

Jeśli ktokolwiek może dodać do tej odpowiedzi, to też będzie świetnie.

EntityTransaction tx = entityManager.getTransaction();

try {
// entitiesMap hold the entity class/table name pairs which have autoincrement primary keys in the sql server database
if(entitiesMap.containsKey(entityName)){
    String tableName = entitiesMap.get(entityName);
    Session session = (Session) entityManager.getDelegate();
    session.connection().createStatement().execute("SET IDENTITY_INSERT [dbo]." + tableName + " ON");
}

tx.begin();
entityObject = jpaTemplate.merge(entity);
tx.commit();

if(entitiesMap.containsKey(entityName)){
    String tableName = entitiesMap.get(entityName);
    Session session = (Session) entityManager.getDelegate();
    session.connection().createStatement().execute("SET IDENTITY_INSERT [dbo]." + tableName + " OFF");
}

return entityObject;
} catch (Exception e) {
}finally{
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. lepszy sposób na generowanie tabeli miesięcy/rok

  2. Jak przekonwertować godzinę DATEPART, która jest czasem wojskowym dla północy (00) na wartość, której mogę użyć, gdy potrzebuję jej do obliczeń?

  3. Jak uruchomić program z SQL?

  4. Filtruj według klauzuli wyjściowej sql

  5. Wyzwalacze programu SQL Server — część 2 — wyzwalacze DDL i LOGON