2009-05-14 17 views

答えて

3

Javadoc Hibernate Sessionを確認し、含まれている方法に

  • をチェック - このインスタンスがこのセッションに関連付けられているか確認してください。
  • getIdentifier - このセッションに関連付けられている、指定されたエンティティの識別子の値を返します。エンティティが関連付けられていない場合にスローされる例外に注意してください。各例外は致命的であるとみなされ、その後には使用しないでください。
  • get - 与えられた識別子を持つ指定されたエンティティクラスの永続インスタンスを返します。そのような永続インスタンスが存在しない場合

そのちょうど「するsaveOrUpdateは」持続または更新(再アタッチ)することの後に私は、「取得」し、さらに変更後の値をチェックし、実際のオブジェクトを使用することになり

3

Session.containsオブジェクトかどうかを伝えますセッションに関連付けられています。識別子がない場合は、識別子がありセッションに関連付けられていれば一時的です。セッションに関連付けられていない識別子ですが、分離されています。

それでも問題が解決しない場合は、最初にオブジェクトの状態を知る必要がある理由、つまりより多くの文脈で質問を言い換えることを検討してください。

0

私は、休止状態のオブジェクト状態を明らかにするためにsession.contains(obj)の使用に同意しません。 session.clear()の単純な呼び出しの後に、永続化/ロードされたオブジェクトはTRANSIENTとみなされます。主キーはありませんが、コンポジットのキーがない場合は、どの状態にあるのかわかりません。

正しい方法が見つかりますHibernate 3の内部: org.hibernate.engine.ForeignKeys.isTransient(...)

関連する問題