我有一个实体实体,就像这样:
@NamedEntityGraphs({
@NamedEntityGraph(
name = "order.grid",
attributeNodes = {
@NamedAttributeNode(value = "id"),
@NamedAttributeNode(value = "name"),
@NamedAttributeNode(value = 'cars',subgraph = "cars-subgraph")
},
subgraphs = {
@NamedSubgraph(
name = "cars-subgraph",
attributeNodes = {
@NamedAttributeNode("cars")
}
)
}
),
@NamedEntityGraph(
name = "order.all",
attributeNodes = {
@NamedAttributeNode(value = "id"),
@NamedAttributeNode(value = "name"),
@NamedAttributeNode(value = "houses",subgraph = "houses-subgraph"),
@NamedAttributeNode(value = 'cars',subgraph = "cars-subgraph")
},
subgraphs = {
@NamedSubgraph(
name = "cars-subgraph",
attributeNodes = {
@NamedAttributeNode("cars")
}
),
@NamedSubgraph(
name = "cars-subgraph",
attributeNodes = {
@NamedAttributeNode("houses")
}
)
}
)
})
public class Order{
private int id;
private String name;
@OneToMany(cascade = CascadeType.ALL,fetch=FetchType.LAZY)
@JoinColumn(name="car_id")
private List<Car> cars;
@OneToMany(cascade = CascadeType.ALL,fetch=FetchType.LAZY)
@JoinColumn(name="home_id")
private List<House> houses;
}
因此,当我在存储库中执行时,方法如下:
@EntityGraph(value = "order.grid", type = EntityGraph.EntityGraphType.FETCH)
他只返回汽车,但是当springboot序列化(在我的RestController中)对象时,他也要获取房屋,并且我不想执行另一个sql,如何解决这个问题? 但是,如果我使用order.all执行entityGraph,他应该返回所有属性。
tks