【发布时间】:2018-07-14 20:55:24
【问题描述】:
我有两个类似于下面的实体:
@Entity
@DynamicUpdate
public class EntityOne {
@Id
public long id;
public String name;
public String displayName;
@JsonManagedReference
@OneToMany(mappedBy = "id", cascade = CascadeType.ALL)
@OrderBy(value = "name")
public List<EntityTwo> entityTwoList;
}
实体二是
@Entity
@DynamicUpdate
public class EntityTwo {
@Id
public long id;
@JsonBackReference
@ManyToOne
@JoinColumn(name = "id")
public EntityOne entityOne;
}
服务:
Lists.newArrayList(repository.findAll());
服务调用 CRUDRepository 的 findAll() 方法。我不希望在调用 findall() 时加载实体两个对象的列表,但此解决方案不起作用。 我在这里做的任何不正确的事情都是为了延迟加载集合。我基本上不希望在指定之前加载集合。
默认情况下,映射是延迟加载的。
【问题讨论】:
-
Jackson 正在尝试获取这个未获取的对象。
-
@surya 是的,正是 JsonManagedReference 注释使 Spring 加载所有内容
标签: java hibernate jpa spring-boot spring-data