首页 > 解决方案 > 如何在使用 JPA 获取后返回一对一关系的值?

问题描述

我的主要问题是,当我对正在开发的 API 执行获取“/users”请求时,我没有获得存储在一对一关系中的数据:

为了清楚起见,这是我从请求中得到的响应示例:

{"id":1,"name":"toto Toto","email":"toto@test.fr","username":"toto","role":{},...}

"role":{} 是空的,但我验证了数据库中有一个与此用户关联的角色,并且在调试模式下,我可以看到该角色已按我想要的方式加载。所以唯一的问题是当我返回整个用户时,JPA 不想返回角色值(即使角色是用户的一部分)。

我的一个想法是将转换器对象重写为 Json,但从我在互联网上看到的情况来看,这很痛苦,而且它应该不这样做就可以工作,所以我一定在某个地方犯了错误,但我找不到在哪里.. .

如果你有想法请告诉我:)

这是我的用户和角色的一对一和一对多关系:
用户:

@OneToOne( cascade = CascadeType.ALL)
@JoinTable(
        name = "role_user",
        joinColumns = @JoinColumn(name = "user_id"),
        inverseJoinColumns = @JoinColumn(name = "role_id"))
@NotNull
@JsonManagedReference
private Role role;

角色:

@OneToMany
@JoinTable(
        name = "role_user",
        joinColumns = @JoinColumn( name = "role_id" ),
        inverseJoinColumns = @JoinColumn( name = "user_id" ) )
@JsonBackReference
private List<User> user;

我是堆栈溢出的新手,所以我不知道我是否提供了足够的信息,如果没有,请告诉我你想知道什么。

感谢您的时间。

标签: springspring-bootjpaspring-data-jpa

解决方案


推荐阅读