Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate 使用关系反序列化实体_Hibernate_Spring_Jackson - Fatal编程技术网

Hibernate 使用关系反序列化实体

Hibernate 使用关系反序列化实体,hibernate,spring,jackson,Hibernate,Spring,Jackson,我们收到的JSON如下所示: { name: "john", surname: "smith", company: "1234342" } 我们的客户端框架还可以处理对象之间的关系,并且将公司映射到其ID 我们有一个Hibernate客户实体,它有一个与另一个公司实体有关系的公司成员 我们使用Spring的@RequestMapping方法(@RequestBody Customer c)来处理请求和反序列化实体,但是我们无法反序列化提供的JSON。Hibernate不知道如何从字符串构建公司

我们收到的JSON如下所示:

{ name: "john", surname: "smith", company: "1234342" }
我们的客户端框架还可以处理对象之间的关系,并且将公司映射到其ID

我们有一个Hibernate客户实体,它有一个与另一个公司实体有关系的公司成员

我们使用Spring的
@RequestMapping方法(@RequestBody Customer c)
来处理请求和反序列化实体,但是我们无法反序列化提供的JSON。Hibernate不知道如何从字符串构建公司,不管字符串是它的主键

将实体从Hibernate序列化为JSON非常容易,但反序列化似乎是另一回事


是否有任何模式/结构来处理我们想要实现的目标?有人能给我指出正确的方向吗?

最简单的解决方案是有两个独立的类模型,一个用于Hibernate,一个用于JSON,并根据需要在它们之间进行转换

但是它不是很优雅,所以Jackson(Spring使用的JSON实现)提供了一个扩展机制(称为),它反过来允许您(即如何将JSON令牌转换为java对象)。看看这个,看看它是否适合你


你;然后,我必须使用自定义映射器。

我认为进行这种序列化/反序列化非常理想。如果您将JSON结构作为映射接收,那么您可以告诉dozer将该映射转换为相应的实体对象。

是的,目前,我们将映射用于具有关系的实体,并根据需要进行转换。没有关系的实体工作得很好!我将有一个模块看看,我不知道他们。谢谢最后我们决定采用这种方法。。。尽管如此,能够以某种方式通过id进行反序列化还是比较干净的,但我们无法管理。