我有两个具有一对多关系的实体:
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方法来加载用户信息时,我可以在日志文件中看到检索用户角色的附加查询也被调用。我如何使用spring数据rest防止它?
由于您使用的是SDR,为了防止在获得用户时加载角色,您可以:
1) 为角色创建存储库。如果有一次检查它是否已导出(@RepositoryRestResource(exported=true)
-默认情况下,只需添加不带此参数的注释)。
2) 或在没有角色的情况下进行用户投影:
@Projection(name = "justUser", types = User.class)
public interface JustUser {
String getUsername();
String getPhoneNumber();
Timestamp getCreationDate();
}
然后在你的请求中使用它,像这样:
GET /users?projection=justUser
将FetchType定义为惰性
,如下所示。
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "user_id", nullable = false)
private User user;
默认情况下,manytone的jpafetchtype是EAGER
。参考这里
问题内容: 我以这样一种方式进行了JPA设置:如果我不使用延迟加载,则几乎将加载整个数据库。我也直接在模型上使用序列化,因此有时我需要初始化代理。 我只想在集合上使用延迟加载。急切地获取一些奇异实体的事实就很好了。但是,无论我如何尝试设置集合,我都永远不会得到代理集合,而我总是会得到完全加载的集合。 这是一些示例代码: 所以这里的问题是,当我检查调试器时,答复的persistantBag-list
问题内容: 我以这样一种方式进行了JPA设置:如果我不使用延迟加载,则几乎将加载整个数据库。我也直接在模型上使用序列化,因此有时我需要初始化代理。 我只想在集合上使用延迟加载。急切地获取某些奇异实体的事实就很好了。但是,无论我如何尝试设置集合,我都永远不会得到代理集合,而我总是会得到完全加载的集合。 这是一些示例代码: 所以这里的问题是,当我检查调试器时,答复的persistantBag-list
问题内容: 我在实体中有一个懒惰的访存类型集合。我正在使用Spring Data(JpaRepository)来访问实体。 我想要服务类和当前实现中的两个功能如下: 获取父级时,“子级”应为null } 提取父项时,应填写“子项”: } 从RestController返回“父”实体时,将引发以下异常: org.springframework.http.converter.HttpMessageNo
描述 (Description) 延迟加载可应用于图像,背景图像和淡入效果,如下所述 - 对于图像 要在图像上使用延迟加载,请按照给定的步骤进行操作 - 使用data-src属性而不是src属性来指定图像源。 将类lazy添加到图像。 <div class = "page-content"> ... <img data-src = "image_path.jpg" class = "l
问题内容: 我在JPA实体中的延迟加载属性有问题。我读过许多类似的问题,但它们与spring或hibernate有关,并且他们的后代不适用或没有帮助。 该应用程序是在Wildfly应用程序服务器上运行的JEE和JPA2.1。有两个实体,DAO会话bean和servlet将它们放在一起: 当我运行此代码时,它失败并显示: 我对WebLogic / JPA1使用了非常相似的模式,并且运行平稳。任何的想
问题内容: 我想知道在node.js中使用是否等效于延迟加载? 例如,如果我有一个函数需要代码中其他任何地方都不需要的特定node.js包,那么我最好在该函数内部使用它,以便仅在调用该函数时才包含所需的包。 我还不确定是否会由于缺乏对node.js架构的了解而在性能方面有所改善?我想它每次与服务器的连接都会使用更少的内存。但是,当它必须读取程序包时,它会增加磁盘的I / O吗,还是将其添加到内存中