sql >> Databasteknik >  >> RDS >> Sqlserver

JPA SET IDENTITY_INSERT fungerar inte

Detta och detta har hjälpt mig och jag har fått detta att fungera enligt nedan.

Även från denna länk Jag fick svaret att JPA inte kommer att stödja DDL-drift.

Om någon kan lägga till det här svaret kommer det också att vara bra.

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. Hur infogar man en BLOB i Oracle med Python?

  2. Hur använder man bindparam() i ett anpassat kompilerat uttryck?

  3. Hur man skapar en parameterfråga i Access

  4. Hur man genererar skript för alla utlösare i databasen med hjälp av Microsoft SQL Server Management Studio