У меня возникают проблемы с обновлением объекта, созданного как часть набора в отношениях @OneToMany.Обновление элемента, созданного как часть отношений @OneToMany
Предположим, что у меня есть очень простой модели предметной области, состоящий из домов и людей, которые живут в этих домах:
Дом:
@Entity
public class House {
@Id
@GeneratedValue
private Long id;
@OneToMany(mappedBy = "person", cascade = CascadeType.ALL, orphanRemoval = true)
private Set<Person> persons;
public void addPerson(Person p) {
persons.add(p);
public Set<Person> getPersons() {
return persons;
}
}
лицо:
@Entity
public class Person {
@Id
@GeneratedValue
private Long id;
@ManyToOne
private House house;
}
Я у нас есть хранилище JPA Spring Boot для дома и HouseService по методу:
@Transactional
public Person addPerson(Long houseId) {
House house = houseRepository.findOne(houseId);
Person person = new Person();
house.addPerson(person);
houseRepository.save(house);
return person;
}
Вызов вышеуказанного метода создает новое Лицо и сохраняется это лицо в базе данных, но экземпляр возвращаемого Person не имеет набора идентификаторов (т. Е. AddPerson(). GetId() возвращает null). Могу ли я заставить службу вернуть экземпляр человека, у которого есть идентификатор сохраненной версии?
Я хочу внести изменения в Личность, созданные с использованием метода addPerson() службы, и иметь возможность сохранять эти изменения на более позднем этапе.
Возможно, у вас должно быть двунаправленное отношение дом может иметь человека, но человек havn't house – Tokazio
Извините, что я оставил это из кода - есть двунаправленные отношения, я обновил вопрос, чтобы показать это. Благодарю. – bobsyouruncle
с каскадом тоже? – Tokazio