gpt4 book ai didi

java - Spring Controller - 将 JSON 属性映射到外键实体

转载 作者:搜寻专家 更新时间:2023-11-01 03:31:40 31 4
gpt4 key购买 nike

用户 Controller .java

@RestController
@RequestMapping("/users")
public class UserController {
// code
@PostMapping("/sign-up")
public void signUp(@RequestBody User user) {
//code
}
}

用户

@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "user_id")
private long id;

@ManyToOne
@JoinColumn(name = "language_id")
private Language language;

// others
public User() {
}
}

因此,如您所见,语言 是一个独立的实体。但我希望能够发送以下 JSON 结构

{
"foreName" : "bla",
"sureName" : "blo",
"language" : "1"
}

但是我收到以下错误

Cannot construct instance of entity.db.user.Language (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value ('1');

我是否需要通过过滤器来预先获取 Language 实体?是否有强制解析方法的形式?在这里正确执行的方法是什么?

最佳答案

创建一个新的 DTO 对象,比如 UserDTO,作为 API 方法中的请求主体。处理 DTO 以形成用户实体,以进一步进行。

关于java - Spring Controller - 将 JSON 属性映射到外键实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50775990/

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