2010-12-07 3 views
3

私はOneToMany関係で子コレクションを持つJPAエンティティを持っていますが、私は親エンティティを保存するとカスケード= CascadeType.ALLを設定しました子コレクションに加えられた変更(追加または削除)は、なぜこれが問題なのかわかりません。JPA、どのようにデータベースに保存されるのかを教えてください

JPA EntityManagerなどから、トランザクションの最後に保存される情報を取得する方法があるかどうかを知ることは有用です。

どうすればよいですか?これをデバッグすることは不可能になりました。

+0

"mappedBy"を使用して所有サイトを設定しましたか? – niels

+0

通常、これは不正なマッピングか、または親の子のリストに子を正しく追加していません。 – Damo

+0

エンティティの状態が持続する前に確認するには、一見する必要があります。EntityListeners http://docs.oracle.com/html/E24396_01/ejb3_overview_pc_callbacks.html – Korgen

答えて

5

SQLレベルで何が起こっているのかを見る1つの解決策は、休止状態でデバッグをオンにすることです。/confディレクトリにlog4j.propertiesファイルを追加すると、休止状態のログ出力を手動で制御できます。ここでは、使用できるサンプル設定ファイルを示します。適切な領域のコメントを外してログレベルを上げます。

log4j.logger.org.hibernate=info 
### log just the SQL 
log4j.logger.org.hibernate.SQL=debug 

### log JDBC bind parameters ### 
log4j.logger.org.hibernate.type=debug 

### log schema export/update ### 
log4j.logger.org.hibernate.tool.hbm2ddl=info 

### log HQL parse trees 
#log4j.logger.org.hibernate.hql=debug 
関連する問題