Обновление jpa hibernate один на один
Я работаю над программным обеспечением для управления квартирами, и у меня возникла проблема.
У меня есть две сущности:
@Entity
public class Tenant extends AbstractEntity { //AbstractEntity contains the id
@Column(nullable = false)
private int number;
@OneToOne
private Apartment apartment;
}
а также
@Entity
public class Apartment extends AbstractEntity { //AbstractEntity contains the id
@Column(nullable = false)
private int number;
@OneToOne
private Tenant tenant;
}
Но, когда я делаю
EntityManager em = emProvider.get();
em.getTransaction().begin();
em.merge(apartment);
em.flush();
em.getTransaction().commit();
Это только спасет Арендатора в Квартиру, но я хотел бы, чтобы оно также обновило Квартиру в Арендаторе.
Мне действительно нужно установить поле квартиры в арендаторе, или есть способ просто исправить это? Спасибо
Сердечно, Баскво
1 ответ
Решение
Вы должны объявить CascadeType.ALL
в вашей квартире лица. См образец
@OneToOne(cascade = CascadeType.ALL)
private Tenant tenant;
CascadeType.ALL предназначен для всех операций CRUD. Настройка CascadeType зависит от потребностей вашего приложения.