2016-07-16 4 views
0

Я следующие объектыЗагрузка ребенок не нагружает родителя

Parent(
id PK, 
name VARCHAR 
//more fields 
); 

И мой стол ребенка является

Child(
    id PK, 
    parentId FK, 
    name VARCHAR 
); 
в моих ява сущностей

мой родитель определяется как

@Entity 
class Parent{ 
    @Id 
    private int id; 

    @OneToMany(mappedBy = "parents") 
    @JsonManagedReference 
    private Set<Child> children; 
} 

и мой класс детей

@Entity 
class Child{ 
    @Id 
    private int id; 

    @ManyToOne 
    @JoinColumn(name = "parendId") 
    @JsonManagedReference 
    private Parent parent; 
} 

Тогда у меня есть ChildRepo со следующим методом. Метод выполняется отлично, но я получаю пустой родительский элемент.

здесь в запросе

@Query("select c from Child c where c.name is not null") 
List<Child> getAllChildrenWithName(); 

P.S: Я использую JsonManagedReference и JsonBackReference избежать рекурсии при отправке сущностей обратно через Json.

ответ

0

Изменить запрос на следующее:

@Query("select c from Child c LEFT JOIN c.parent p where c.name is not null") 

Если вы используете внутреннее соединение ваш результат запроса может быть пустым, если дети не связаны с родителем.

Смежные вопросы