3

照会には多くの要素が含まれるように、一対多の関係を持つ照会と要素の 2 つのテーブルがあります。

これがベストプラクティスであるため、外部キー列 ELEMENT.ENQUIRY_ID に Oracle の NOT NULL 制約を適用したいと思います。Inquiry オブジェクトに次のコレクションがあります。

@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "ENQUIRY_ID", referencedColumnName = "ID")
private Set<Element> elements = new HashSet<Element>();

NOT NULL 制約を適用すると、次のスタック トレースが表示されます。

原因: java.sql.BatchUpdateException: ORA-01400: cannot insert NULL into ("ELEMENT"."ENQUIRY_ID")

したがって、Hibernate は明らかに、親の問い合わせの前に要素のコレクションを永続化し、その後戻って外部キー フィールドで UPDATE を実行しています。

コレクションの外部キー フィールドに NOT NULL 制約を適用する方法はありますか?

4

1 に答える 1

2

で試しnullable = falseました@JoinColumnか?

于 2011-01-07T13:00:25.933 に答える