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

@Versionを休止すると、データベースの外部キー制約が失敗します

    最初

    FKは、参照されるエンティティのPKを参照する必要があります。この場合、person.conference_room_idが必要です。 conferenceroom.idを参照します 。 codeが必要な場合 ConferenceRoomの識別フィールドになります エンティティの場合は、代理キーを使用しないでください。 codeの場合 列はPK候補ではないため、FK候補でもありません。

    2番目

    マージ

    永続化

    mergeを混乱させたと思います persistを使用 。提供されたコードからわかることから、新しいConferenceRoomを作成していることになります。 既存のものを変更しません。したがって、merge あなたがしたいことをするつもりはありません。 (提供されている)メソッドを次のように変更してみてください:

    public ConferenceRoom getNewConferenceRoom(Person p) {
        ConferenceRoom r = new ConferenceRoom();
        r.setCode("MyUniqueGeneratedCode");
        r.getPeople().add(p);
        // sessionFactory is spring injected member
        sessionFactory.getCurrentSession().persist(r); 
    }
    

    これらのことで、提起した問題が修正されるはずです。




    1. Laravelが3つのテーブルに参加

    2. MySQLmysql_tzinfo_to_sqlプログラム

    3. MySQL日時値をGoogleチャートAPI日時に変換する方法

    4. で始まり、で終わるすべての可能な組み合わせのようなものを見つけるためのmysqlクエリ(簡略化された複製)