![](/img/trans.png)
[英]Spring Data, fetching rows ManyToOne / OneToMany relationships?
[英]Problem in fetching data of @ManyToOne field
我没有得到@ManyToOne字段的数据。
@Entity
public class UserDetail {
@OneToMany(cascade = { CascadeType.ALL })
@JoinColumn(name = "user_id")
@JsonIgnore
private List<UserOrder> orders;
}
@Entity
public class UserOrder {
@ManyToOne
@JoinColumn(name = "user_id")
@JsonBackReference
private UserDetail userDetail;
@ManyToOne
@JoinColumn(name = "runner_id")
@JsonBackReference(value="runner")
private UserDetail runner;
}
List<UserOrder> findAllByStatusNotInOrderByOrderDateDesc(List<OrderStatus> orderStatuses);
当我获取订单列表时,我期待结果中的userdetail和runner,但我没有获得任何JSON输出。
您需要在结果中包含延迟加载关系。
@EntityGraph(attributePaths = "runner")
List<UserOrder> findAllByStatusNotInOrderByOrderDateDesc(List<OrderStatus> orderStatuses);
或者只是设置它急切加载
尝试以这种方式设置这两个实体之间的关系:
@Entity
public class UserDetail {
@OneToMany(mappedBy="userDetail", cascade = { CascadeType.ALL })
@JsonIgnore
private List<UserOrder> orders;
@OneToMany(mappedBy="runner", cascade = { CascadeType.ALL })
@JsonIgnore
private List<UserOrder> runnerOrders;
}
@Entity
public class UserOrder {
@ManyToOne
@JoinColumn(name = "user_id")
@JsonBackReference
private UserDetail userDetail;
@ManyToOne
@JoinColumn(name = "runner_id")
@JsonBackReference(value="runner")
private UserDetail runner;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.