3

私はeclipselinkを試していました。データベース内の既存のエンティティを更新しようとしています。JPAエンティティにはパブリックフィールドのみがあり、フィールドにはJPAアノテーションが付けられます。コードは、を使用してエンティティをロードしますEntityManager.find()

このコードは、JPAエンティティのインスタンスを作成し、エンティティのパブリックフィールドに値を割り当て、EntityManager.merge(entity)メソッドを呼び出します。Eclipselinkはデータベースレコードを更新しません。ログを有効にして、EclipselinkがSQLステートメントを発行するかどうかを確認しました。

Eclipselinkは更新ステートメントを発行しません。これは、フィールドの永続性を使用しても、setterメソッドを使用する代わりにエンティティのパブリックフィールドに値を割り当てることができないことを意味しますか?

ありがとう、Chir

4

1 に答える 1

3

ウィービングは、怠惰なワントゥーンやメニートーン、変更の追跡など、いくつかの最適化を導入します。これらが機能する唯一の方法は、エンティティでアクセサメソッドを使用する場合ですが、それがオプションでない場合は、必要に応じてオフにすることができます。 変更の追跡の詳細については、http://eclipse.org/eclipselink/documentation/2.4/jpa/extensions/a_changetracking.htmを参照 してください。

于 2012-10-29T12:13:59.983 に答える