sql >> Databáze >  >> RDS >> Sqlserver

JPA SET IDENTITY_INSERT nefunguje

Toto a toto pomohly mi a funguje to, jak je uvedeno níže.

Také z tohoto odkaz Dostal jsem odpověď, že JPA nebude podporovat provoz DDL.

Pokud někdo může přidat k této odpovědi, bude to také skvělé.

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. Jak získám datum příštího měsíce z dnešního data a vložím je do své databáze?

  2. Proč moje uložená procedura vyvolá chybu „Žádná data – načteno, vybráno nebo zpracováno nula řádků“, když mám v příkazu WHERE?

  3. Cizí klíč Oracle

  4. Spusťte dotazy PostgreSQL z příkazového řádku