Hibernate не генерирует ключ в двунаправленном отображении - PullRequest
0 голосов
/ 05 марта 2019

У меня есть 2 сущности, которые связаны отношениями один к одному.Я использую Hibernate в качестве поставщика JPA.

В EntityA у меня есть объявление внешнего ключа

public class EntityA{
.... //some properties
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "instructor_detail_id")
private EntityB entityB;

, и EntityB выглядит как

public class EntityB{
...//some properties
@OneToOne(mappedBy = "entityB",cascade = CascadeType.ALL)
private EntityA entityA;

Я сохраняю новый entityB экземпляр с помощью entityManger:

entityManager.getTransaction().begin();
EntityA ea = new EntityA ..//constructor with input arguments
EntityB eb = new EntityB ..//constructor with input arguments
eb.setEntityA(ea);
entityManager.persist(eb);
entityManager.getTransaction().commit();

Я не получаю идентификатор столбца внешнего ключа в entityA, то есть базу данных таблицы для заполненного идентификатора объекта, кроме внешнего ключастолбец, который указывает на entityB, но если я сохраняю новый экземпляр EntityA, все работает нормально

1 Ответ

0 голосов
/ 05 марта 2019

Поскольку у вас есть @OneToOne отображение в EntityA и EntityB.Вам нужно установить @OneToOne Object в обеих сущностях.

Попробуйте что-то вроде этого

public void saveData() {
    EntityA a = new EntityA(...);
    EntityB b = new EntityB(...);
    a.setEntityB(b);
    b.setEntityA(a);

    entityManager.persist(a);
    ...
}

Подробнее см. здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...