Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

JPA SET IDENTITY_INSERT не работи

Това и това ми помогнаха и постигнах това да работи както следва.

Също от този връзка Получих отговор, че JPA няма да поддържа DDL операция.

Ако някой може да добави към този отговор, това също ще бъде чудесно.

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. Време за изчакване на заявката на SQL Server

  2. Как да изброя всички таблици във всички бази данни в SQL Server в един набор от резултати?

  3. Нулева стойност в параметър varbinary тип данни

  4. Неуспешно преобразуване на стойност на параметър от низ в Int32

  5. Актуализирайте SQL с последователно номериране