加载孩子不会加载父母

时间:2016-07-16 20:01:31

标签: java hibernate spring-boot spring-data-jpa

我有以下实体

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

我的孩子表是

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

在我的java实体中,我的父级被定义为

@Entity
class Parent{
   @Id
   private int id;

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

我的Child课程是

@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:我正在使用JsonManagedReferenceJsonBackReference来避免在通过Json发回实体时的递归。

1 个答案:

答案 0 :(得分:0)

将您的查询更改为以下内容:

StartCoroutine(waitRestart());

如果使用内部联接,如果子项未与父项关联,则查询结果可能为null。