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

JPA / Hibernateを使用して子のIDで親のIDを参照するにはどうすればよいですか?

    マッピングは次のようになります。

    @Entity
    @Table(name = "MY_SCHEMA.MY_TABLE_A")
    @Component
    public class FirstClass implements Serializable {
    
        @Id
        @SequenceGenerator(name = "MY_SEQ", sequenceName = "MY_SCHEMA.MY_SEQ", allocationSize = 1)
        @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "MY_SEQ")
        @Column(name = "MY_ID")
        private Long myId;
    
        @OneToOne(mappedBy = "firstClass", cascade = CascadeType.ALL)
        private SecondClass secondClass;
    }
    
    @Entity
    @Table(name = "MY_SCHEMA.MY_TABLE_B")
    @Component
    public class SecondClass implements Serializable {
    
        @Id
        @JoinColumn(name = "MY_ID", referencedColumnName = "MY_ID")
        @OneToOne
        private FirstClass firstClass;
    }
    

    カスケードオプションを設定すると、firstClassを保存するために呼び出すだけで済みます。関連するsecondClassは自動的に永続化されます。つまり、メモリ内モデルでリレーションシップの両側を設定すると仮定します。

    firstClass.setSecondClass(secondClass);
    secondClass.setFirstClass(firstClass);
    


    1. SQLクエリはワークベンチで機能しますが、Javaで構文エラーが発生します

    2. MySQL-一意の外部キー

    3. ORACLE BLOB列を含む文字列のすべてのテーブルを検索

    4. [更新された2020-01-23]MicrosoftOffice365ビルド1912はODBCリンクテーブルのIDを破壊します