2011-01-07 1 views
3

私は照会に多くの要素があるような1対多の関係を持つ2つのテーブルINQUIRYとELEMENTを持っています。OracleのNOT NULL列制約を適用してHibernateコレクションをマップするにはどうすればよいですか?

これはベスト・プラクティスであるため、外部キー列ELEMENT.ENQUIRY_IDに対してOracleのNOT NULL制約を適用したいと考えています。私はお問い合わせオブジェクトに対して次のコレクションを持っている:java.sql.BatchUpdateException:

によって引き起こさ:ORA-01400:私は、次のスタックトレースを受けるNOT NULL制約を施行する場合

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

することはできません(「ELEMENT」。「ENQUIRY_ID」)

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

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

答えて

2

nullable = falseさんを@JoinColumnに招待しましたか?

+0

ありがとうございましたaxtavt、それは、あなたが知っているときに簡単に働いた! 私はどこからでも書き込みを見つけることができませんが、正しく検索していないかもしれませんが、シナリオ、ソリューション、Hibernateがアノテーションをhttp://www.andrew-eells.com/2011/01/09/hibernate-foreign-key-collections-database-best-practice / –