hereの問題について私は苦労しています。 hashCode()
とequals()
をオーバーライドして、コレクションセーフな永続クラスを作成しました。私のエンティティは良い自然キーを持っていないので、これらのメソッドは@Id
フィールドを使う必要があるので、オブジェクト作成時にidを割り当てる必要があります。しかし、今やHibernateは、インスタンスが一時的か永続的かを判断する別の方法が必要であり、それに使用する論理フィールドは@Version
です。@Idの代わりに@Versionを使用して永続状態をチェックするようにHibernateに指示します。アノテーションを使用していますか?
<version unsaved-value="null">
を使用してhbmファイルでこれを行うことができます。しかし、私はunsaved-value
属性をサポートしていない注釈を使用しています。単純な@Version
アノテーションを使用しているだけの場合、Hibernateはそれを使用して永続性状態を判断するのに十分スマートになりますか?私はHibernateのドキュメントをチェックしましたが、少し曖昧です。
誰もが、クラス全体のマッピングをhbmファイルに移動する以外の解決方法を知っていますか?