UserController.java
@RestController
@RequestMapping("/users")
public class UserController {
// code
@PostMapping("/sign-up")
public void signUp(@RequestBody User user) {
//code
}
}
User
@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() {
}
}
因此,正如您所见,Language
是一个独立的实体。但我希望能够发送以下JSON
结构
{
"foreName" : "bla",
"sureName" : "blo",
"language" : "1"
}
但我收到以下错误
无法构造
entity.db.user.Language
的实例(尽管在 至少有一个Creator存在):没有String-argument构造函数/工厂 从String值反序列化的方法(' 1');
我是否需要通过过滤器预先获取Language
实体?是否有强制解析方法的表单?在这里做正确的方法是什么?
答案 0 :(得分:1)
在API方法中创建一个新的DTO对象Say UserDTO作为Request Body。处理DTO以形成用户实体,继续进行。