SpringアプリケーションのRestコントローラの1つで、エンティティのインスタンスがdbからロードされ、そのフィールドがそのエンティティのsetXX
メソッドを呼び出して変更されます。 dbに保存されます。Java Hibernate:フィールド設定後に自動的に保持する
setXX
メソッドを呼び出すたびにデータベース内のこのインスタンスを自動的に更新できるかどうかは疑問です。私はそれが理想的ではないというパフォーマンス上の賢明さを知っていますが、場合によってはそれは私にとってはうまくいくでしょう。
編集1
これは私がエンティティのロード/セーブしていたテストコードです。
public CustomUserDetails createUser(String username, String name, String description, String imageId) {
User user = new User();
user.setName(name);
user.setDescription(description);
user.setImageId(imageId);
CustomUserDetails userDetails = new CustomUserDetails(username,
DUMMY_PASSWORD, true, true, true, true,
AuthorityUtils.commaSeparatedStringToAuthorityList("ROLE_USER"));
userDetails.setUser(user);
userDetailsRepository.save(userDetails);
return userDetails;
}
とテストで、私は、このメソッドから返された値に
getUser
を呼び出すことによって
User
インスタンスを取得します:私は、DBへのユーザの詳細を保存するutilのクラスで、次のヘルパーメソッドを呼び出します。 I
setXX
いくつかの値が保持されていません。
"Transactional"アノテーションを持つメソッド内から "setter"メソッドを呼び出す場合、エンティティは自動的にDatabaseに保存されます。 通常、サービス層で行います。 –