двунаправленный один-к-одному не работает с spring-data-jpa - PullRequest
0 голосов
/ 11 мая 2019

У меня есть 3 таблицы в postgresql, для которых у меня есть 3 объекта данных Spring. Это родительские, дочерние и третьи таблицы с одинаковыми именами на стороне объекта.

Родительская таблица имеет имя столбца col_p, который имеет отношение внешнего ключа с полем id дочерней таблицы.

Мне нужны двунаправленные отношения OneToOne между ними. Итак, я создал сущности следующим образом:

Родительский субъект:

@Entity
@Table(name="parent")
@NamedQuery(name = "Parent.findAll", query = "SELECT p FROM Parent p")
public class Parent implements Serializable {

     @OneToOne
     @JoinColumn(name = "col_p")
     private Parent parent;
}

Дочерняя сущность:

@Entity
@Table(name="child")
@NamedQuery(name="Child.findAll", query="SELECT c FROM Child c")
public class Child implements Serializable {

    @OneToOne(mappedBy="child")    
    private Parent parent;

    @ManyToOne
    @JoinColumn(name="third_id")
    private Third third;
}

Используя это определение сущности, когда я сохраняю parent, используя родительский репозиторий, созданный с использованием данных весны jpa, он работает нормально. Я вижу запись в родительской таблице.

Теперь, есть еще одна сущность по имени Третий (как уже упоминалось в начале), у которой дочерняя сущность имеет один из своих атрибутов следующим образом:

Третье лицо

@Entity
@Table(name="third")
@NamedQuery(name="Third.findAll", query="SELECT t FROM Third t")
public class Third implements Serializable {

    @OneToMany(mappedBy="third")
    private List<Child> child;

}

Проблема в том, что когда я использую пружинные данные jpa для извлечения сущности с именем Third и ожидаю, что она даст мне Parent сущность от дочерней сущности (third -> child -> parent), родительская сущность всегда возвращается как нулевая. Когда я запрашиваю таблицы, начиная с идентификатора, который я использую в третьей таблице, и перехожу от дочернего элемента к родительскому, у родительского элемента есть соответствующая запись.

Я не то, что именно я перепутал с отношениями в созданных мною сущностях, которые не принесли бы мне запись для Родительской сущности.

Пожалуйста, помогите.

...