나는 다음과 같습니다 간단한 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
)를 자동 응답해야하고 .save()를 호출해야합니까?
포스터가 JPA의 일부가 아닌데 왜 독점적 주석'@ LazyCollection'을 사용한다고 제안 하시겠습니까? –
이것으로 양방향 매핑을 할 수 있습니다. – Deepanjan