【发布时间】:2018-08-05 18:55:03
【问题描述】:
我有两个具有一对多关系的实体:
public class User {
@Id
@GeneratedValue
private Long id;
private String username;
private String phoneNumber;
private Timestamp creationDate;
@OneToMany(mappedBy = "user")
private List<Role> roles;
}
public class Role {
@Id
@GeneratedValue
private long id;
@ManyToOne
@JoinColumn(name = "user_id", nullable = false)
private User user;
}
但是当我调用 get 方法来加载用户信息时,我可以在日志文件中看到用于检索用户角色的附加查询也被调用。如何使用弹簧数据休息来防止它?
【问题讨论】:
-
尝试将 fetchType 设置为 LAZY
-
它不适用于 spring-data-rest 实体。 fetchType 默认也是惰性的。
-
您必须展示的是如何检索和操作用户实体。作为提示,启用 SQL 日志,您可以查看是否第二次执行角色查询
-
其实我发现show_sql属性的问题打开了,不过谢谢指教。
标签: spring spring-data-jpa spring-data-rest