У меня есть несколько кодов, но он получает ошибку на personRepository.save (person2), нет необходимости исправлять это, я просто объясняю, почему это вызывает: отсоединенная сущность передана в постоянное состояние.
@Entity
public class Person {
@Id
@GeneratedValue
@Column(name = "id")
private Long id;
@Column(name = "name")
private String name;
@Column(name = "wallet_id", insertable = false, updatable = false)
private Long wallet_id;
@ManyToOne (fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "wallet_id",referencedColumnName = "id", insertable = true, updatable = true )
private Wallet wallet;
}
public void testSave(String name) {
Wallet walletNewNoHaveInDB = new Wallet(); // Generated id.
Person person = new Person(); // Generated id.
person.setName(name);
person.setWallet(walletNewNoHaveInDB);
personRepository.save(person); // This is OK and inserted into DB both(wallet , person).
Person person2 = new Person(); // Generated id.
person2.setName(name);
person2.setWallet(walletNewNoHaveInDB);
personRepository.save(person2); /// detached entity passed to persist
}