Обновление 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 зависит от потребностей вашего приложения.

Другие вопросы по тегам