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

UserController.

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’);

我是否需要通过过滤器预先获取语言实体?是否有强制解析方法的表单?在这里正确地做到这一点的方法是什么?

最佳答案 在API方法中创建一个新的DTO对象Say UserDTO作为Request Body.处理DTO以形成用户实体,以进一步继续.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值