Java JSON->;具有Spring数据的实体JPA/Spring REST

Java JSON->;具有Spring数据的实体JPA/Spring REST,java,json,jackson,spring-data-jpa,spring-rest,Java,Json,Jackson,Spring Data Jpa,Spring Rest,我有一个Foo班和一个Bar班: @Entity public class Foo extends BaseEntity { private Long id; private String foo; } @Entity public class Bar extends BaseEntity{ private Long id; private String bar; } 和一个@控制器 @Controller ... @RequestMapping(va

我有一个Foo班和一个Bar班:

@Entity
public class Foo extends BaseEntity {
    private Long id;
    private String foo;
}

@Entity
public class Bar extends BaseEntity{
    private Long id;
    private String bar;
}
和一个
@控制器

@Controller
...
    @RequestMapping(value = "/foo/{foo}")
    public void foo(@PathVariable("foo") Foo foo) {
...
使用Spring数据JPA和Sprint REST,我能够在URL中将Foo作为id传递,并通过内置的域类转换器自动获取Foo对象:

这个很好用。但在某些情况下,我希望通过JSON而不是url参数将数据发布到控制器

{
    foo : {id : 42},
    bar : {id : 123},
}
是否有可能自动从JPA完全加载类似的内容(而不仅仅是用id初始化)


我尝试了@RequestBody,但它只初始化请求给定的值,而不从db加载实体。

您是在询问如何使用POST发送JSON数据,还是如何将给定的JSON解析为对象表示?第一个检查:我问的是一个@Controller接收JSONso,这个答案应该会有帮助:这个答案不会加载JPA实体,而是只使用发布的数据(仅id)初始化它。我想得到完整的对象,就像Jackson使用@PathVariables一样,恐怕这是不可能的。SpringDataREST使用GET方法查找数据,使用POST方法创建新实例。请参阅文档的第五章:您是在询问如何使用POST发送JSON数据,还是如何将给定的JSON解析为对象表示?第一个检查:我问的是一个@Controller接收JSONso,这个答案应该会有帮助:这个答案不会加载JPA实体,而是只使用发布的数据(仅id)初始化它。我想得到完整的对象,就像Jackson使用@PathVariables一样,恐怕这是不可能的。SpringDataREST使用GET方法查找数据,使用POST方法创建新实例。见文件第5章: