【发布时间】:2019-09-16 07:51:03
【问题描述】:
我正在设置一个 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 提供的工具实现,或者这不是传统的做事方式。提前致谢。
【问题讨论】:
-
我不明白你的问题,实际上如果你只是从
@RestController返回你的实体A,它会正确地解析为 JSON 作为你的例子,你有什么问题吗? -
我发送给定的有效载荷并尝试保存实体。 Hibernate 表示给定实体已分离,无法保存
-
发生这种情况是因为在序列化之后您在 Hibernate 的上下文中确实没有 A 或 B,您应该找到 madz 提到的引用或获取数据库中的整个实体。我不建议你直接使用数据库实体进行序列化,你应该使用 DTO 来代替
标签: java spring spring-boot spring-data-jpa spring-data