代码之家  ›  专栏  ›  技术社区  ›  Yassin Hajaj

Spring控制器-将json属性映射到外键实体

  •  4
  • Yassin Hajaj  · 技术社区  · 7 年前

    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 (尽管在 至少存在一个创建者):没有字符串参数构造函数/工厂 从字符串值(“1”)反序列化的方法;

    我需要通过过滤器来取 语言 实体预先?是否有强制解析方法的窗体?在这里如何正确地进行?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Prakash Ayappan    7 年前