2

CascadeType.MERGEを使用していますが、生成されたSQLの外部キーにONUPDATEが含まれていません。これが私のコードです

@Entity
public class Address {
    @Id
    private int id;

    private String address;
}

@Entity
public class Employee {
    @Id
    private int empId;

    @OneToOne(cascade = CascadeType.MERGE)
    private Address address;
}

ここに足りないものはありますか

4

1 に答える 1

1

CascadeType.MERGEはJPA構造であり、Employeeでmergeを呼び出したときに、参照されたアドレスでもmergeを呼び出すようにプロバイダーに指示します。

ON UPDATE CASCADEは、CascadeType.mergeとは何の関係もないように見えるデータベース設定です。参照される主キーが変更された場合、データベースは外部キーを更新します。JPAで主キーを変更することは許可されていないため、この設定は意味がありません。変更が必要になる可能性のある自然なpkがある場合は、一意の識別子にシーケンスを使用することをお勧めします。

于 2012-08-13T15:27:43.487 に答える