2016-07-16 1 views
0

je suit les entitésenfant de chargement ne se charge pas parent

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

et ma table enfant est

Child(
    id PK, 
    parentId FK, 
    name VARCHAR 
); 

dans mes entités java mon parent est défini comme

@Entity 
class Parent{ 
    @Id 
    private int id; 

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

et ma classe enfant est

@Entity 
class Child{ 
    @Id 
    private int id; 

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

Puis j'ai ChildRepo avec la méthode suivante. La méthode s'exécute bien, mais je reçois un parent vide.

ici est la requête

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

P.S: J'utilise JsonManagedReference et JsonBackReference pour éviter récursion lors de l'envoi des entités retour via JSON.

Répondre

0

Changer votre requête à ce qui suit:

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

Si vous utilisez résultat jointure interne de votre requête peut être nul si les enfants ne sont pas associés à un parent.