私はこのようになりますシンプルなJPAリポジトリを持っています。春JPA永続ネストされたオブジェクト
@Entity
public class PlayerCharacter
{
@Id
@GeneratedValue(generator = "uuid")
@GenericGenerator(name = "uuid", strategy = "uuid2")
protected String uuid;
@OneToOne(optional = true)
private User user;
@Column(nullable = false)
private String characterName;
//...
}
は今、私は簡単にこのようなユーザーインスタンスを編集し、存続できることを知っている:
User user = userRepository.findByName("Alice");
PlayerCharacter character = user.getPlayerCharacter();
character.setCharacterName("ConanTheBarbarian");
userRepository.save(user);
しかし、どのように私は私が持っていないコンテキスト内からPlayerCharacter
インスタンスを永続化するだろうバックUser
インスタンスへのポインタは、FI:
public void changePlayerCharacterName(PlayerCharacter character, String name){
character.setCharacterName(name);
// How to correctly persist the 'character' instance here?
}
は、私はちょうどuserRepository.save(character);
を呼び出すことができますか?
別のリポジトリ(PlayerCharacterRepository
)をautowireし、その上で.save()を呼び出す必要がありますか?
JPAの一部ではないときに、ポスターが独自の注釈@ @ LazyCollection'を使用することをなぜお勧めしますか? –
これにより、双方向マッピングが可能です。 – Deepanjan