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

Hibernateアノテーションを使用してINITIALLYDEFERRED制約を定義できますか?

    残念ながら、Hibernateは遅延制約をサポートしていません。 https://hibernate.atlassian.net/参照/HHH-2248

    entityManager.flush()メソッドで遊んでみることができます。たとえば、 inst1という名前のInstrumentsがあるとします。 およびinst2

    Instrument inst1 = entityManager.find(Instrument.class, 1);
    // change name of first Instrument to some random one
    inst1.setName("inst3");
    entityManager.flush();
    Instrument inst2 = entityManager.find(Instrument.class, 2);
    inst2.setName("inst1");
    entityManager.flush();
    inst1.setName("inst2");
    

    または、DBからエンティティを取得し、DBから削除し、フラッシュを実行して、更新されたエンティティを永続化することもできます。このようにして、3番目の名前を作成する必要はありません。

    これらのソリューションのパフォーマンスへの影響についてはよくわかりません。自分で理解する必要があります。



    1. TIMESTAMP列のデフォルト値としての有効期限

    2. 特定の年のすべての土曜日の日付を取得する - SQL Server

    3. dsnを使用してRODBCでRをMySQLに接続する

    4. sys_connect_by_path区切り文字が列の値に存在しないのに、なぜOra-30004を取得するのですか?