spring 我不知道如何将oneToMany对象发送到manyToOne的GET [关闭]

w8f9ii69  于 12个月前  发布在  Spring
关注(0)|答案(1)|浏览(83)

已关闭。此问题需要details or clarity。目前不接受回答。
**要改进此问题吗?**通过editing this post添加详细信息并阐明问题。

7天前关闭
Improve this question
我有一个API,它有两个实体,USER和ADDRESS,在一对多的关系中,使用Spring JPA。当为用户发出GET请求时,我收到以下JSON:

[
  {
    "id": 1,
    "name": "David",
    "addresses": {
      "id": 1,
      "address": "Avenue 2"
    }
  }
]

字符串
当对一个地址进行GET请求时,我会收到以下JSON:

[
  {
    "id": 1,
    "address": "Avenue 2"
  }
]


类用户

@Entity
@Table(name = "user")
public class User {
    // Atributos
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String name;

    @OneToMany(mappedBy = "user")
    private List<Address> addresses = new ArrayList<>();
}


类地址

@Entity
@Table(name = "address")
public class Address {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String address;

    @ManyToOne(optional = false)
    @JsonIgnore
    @JoinColumn(name = "user_id")
    private User user;
}


我需要在HTML中列出地址和与每个地址相关联的用户名,但是我没有办法通过GET请求在地址处生成的JSON来检索用户名。

qxgroojn

qxgroojn1#

你有两个选择:
1.从User属性的Address实体中删除@JsonIgnore,并将其添加到List属性的User实体中。它有一个负面的方面,即对User资源的API调用不会返回地址。
1.另一种方法是创建一个DTO对象,您可以根据需要使用它。您可以向您的存储库发出请求,并根据需要将响应分配给DTO。简短的示例:AddressUserDto = new AddressUserDto(user, address)

相关问题