У меня есть следующие объекты:
@Entity
@Table(name = "profile")
public class Profile {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
@OneToOne(cascade = CascadeType.ALL)
private ProfileContacts profileContacts;
...
}
и
@Entity
@Table(name = "profile_contacts")
public class ProfileContacts {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
@Column(name = "description")
private String description;
@Column(name = "first_name")
private String firstName;
@Column(name = "last_name")
private String lastName;
}
Я пытаюсь обновить его, отправив это JSON с обновлением на контроллер REST:
{
"id": 1,
"description": "an update",
"profileContacts": {
"firstName": "John",
"lastName": "Doe"
}
}
поэтому в конце он вызывает
profileRepository.save(profile);
, где profileRepository
является экземпляром класса ProfileRepository
:
public interface ProfileRepository extends JpaRepository<Profile, Long> {
}
, который является spring-data-jpa
интерфейсом.
Но каждый раз после такого обновления он обновляет profile
таблицу, но добавляет новую строку в profile_contacts
таблицу (таблицу, которая соответствует ProfileContacts
сущности) вместо обновления существующих. Как я могу добиться обновления?