gpt4 book ai didi

java - 如何在请求中通过 id 引用实体

转载 作者:行者123 更新时间:2023-12-02 06:15:39 25 4
gpt4 key购买 nike

我正在设置一个 Spring Boot 应用程序,我已经设置了实体并连接到数据库,现在我想实现从其余 API 保存数据。假设我有这样的实体

@Entity
class A {
...
private String name;
@OneToOne
private B b;
...
}

并且我希望能够在 id 为 1 的 B 存在时发送此帖子“A”创建请求。此请求的结果将是 A 链接到 B。

{
"name":"name Of A"
"B": {
"id":1
}
}

使用 Spring Boot 提供的工具可以实现这一点吗?或者这不是传统的处理方式。提前致谢。

最佳答案

据我所知,没有任何内置解决方案可以简单地将 json 映射到要由存储库直接保存的实体。

您需要在其余 Controller 中使用@RequestBody作为A参数,然后手动使用entityManager.getReference(id_of_b)设置A的B实体。然后您可以使用repository.save ...

如果想做得更好,需要自己编写HandlerMethodArgumentResolver,并实现并注册JacksonStdDesrializer来判断@OneToOne@ManyToOne 关系,然后通过 Jackson 获取关系的 id,并通过 entityManager.getReference(id_of_b) 设置它,如上所述。

这样,生成的实体就可以直接由存储库保存。

关于java - 如何在请求中通过 id 引用实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55873697/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com