我正在使用 JHipster 并运行以下 curl 命令:POST/api/gang-users与身体:{ "role": "member", "gang": "3", "user": "1"}但我收到以下错误:JSON 解析错误:无法构造实例 com.getgreetapp.greetapp.domain.User(尽管至少存在一个 Creator):没有从字符串值 ('1') 反序列化的字符串参数构造函数/工厂方法;嵌套异常是 com.fasterxml.jackson.databind.exc.MismatchedInputException:无法构造实例com.getgreetapp.greetapp.domain.User(尽管至少存在一个 Creator):没有字符串参数构造函数/工厂方法可以从字符串值 ('1') 反序列化\n 在 [来源:(PushbackInputStream);第 4 行,第 10 列](通过引用链:com.getgreetapp.greetapp.domain.GangUser[\"user\"])帮派用户资源 createGangUser@PostMapping("/gang-users") @Timed public ResponseEntity<GangUser> createGangUser(@Valid @RequestBody GangUser gangUser) throws URISyntaxException { log.debug("REST request to save GangUser : {}", gangUser); if (gangUser.getId() != null) { throw new BadRequestAlertException("A new gangUser cannot already have an ID", ENTITY_NAME, "idexists"); } User user = userRepository.findById(gangUser.getUser()); GangUser result = gangUserRepository.save(gangUser); return ResponseEntity.created(new URI("/api/gang-users/" + result.getId())) .headers(HeaderUtil.createEntityCreationAlert(ENTITY_NAME, result.getId().toString())) .body(result); }
1 回答

呼啦一阵风
TA贡献1802条经验 获得超6个赞
在我看来,有几件事需要检查。
首先,不建议使用相同的对象在数据库中存储数据并响应请求。数据对象可以是 GangUser、User 和 Gang,而响应对象可以是 GangUserApi、UserApi 和 GangApi。使用这种方法,您将能够修改一个图层而无需修改另一个图层。
其次,您的服务需要一个里面有一个 User 的 GangUser。用于将其存储在数据库中的同一用户对象。你只是在那里发送一个字符串(“1”)而不是一个对象。
一个快速的解决方案可能是修改 JSON:
{
"role": "member",
"gang": "3",
"user": {
"id":"1"
}
}
但我想知道你是否明白发生了什么。这比仅仅为您提供快速解决方案更重要。
添加回答
举报
0/150
提交
取消