sql >> データベース >  >> RDS >> Sqlserver

JPASETIDENTITY_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. 間違ったmysqlクライアントライブラリバージョン用にコンパイルされたRubymysql2gem

    2. Hibernate> CLOB> Oracle :(

    3. socket.ioでロングポーリングを実装する方法は?

    4. pl/sqlのxmlelementを使用してすべてのリレーショナル表データを取得します