[英]Problem in fetching data of @ManyToOne field
I am not getting 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);
when i am fetching list of orders, i am expecting userdetail and runner in result, but i am not getting anything in JSON output. 当我获取订单列表时,我期待结果中的userdetail和runner,但我没有获得任何JSON输出。
You need to include the lazy load relation into the result. 您需要在结果中包含延迟加载关系。
@EntityGraph(attributePaths = "runner")
List<UserOrder> findAllByStatusNotInOrderByOrderDateDesc(List<OrderStatus> orderStatuses);
Or just set it eager load 或者只是设置它急切加载
Try to set the relation between those two entities in this way: 尝试以这种方式设置这两个实体之间的关系:
@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.