繁体   English   中英

获取@ManyToOne字段数据时出现问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM