2016-08-16 120 views
3

这就是我在一个项目中看到的: JPA实体类用于将对象持久化到数据库。 但是当我们创建Jersey端点时,我们通常会消耗并生成JSON。所以,某种POJO被用来表示我们想要发送或接收的数据。因此,每次处理泽西岛请求时,“汇编程序”类都用于从实体对象中组装POJO(反之亦然)。所以,流量就是这样的。 实体对象 - >汇编器服务 - > JSON。将实体对象转换为POJO,反之亦然的最佳方式?

现在我正在开始一个新项目,我不确定这个方法是否是最好的。从一个角度来看,它允许控制我想返回的JSON并将这些表示与持久化类分离。另一方面,它看起来像我可以避免的一个额外的层。

有没有办法让这个翻译更容易(也许是自动的)?

更新: 感谢您的回答。但是POJO到JSON映射是由Jersey自动完成的。我真正想知道的是,如果有一种将实体类(具有JPA/Hibernate注释的Java类)映射到JSON而不使用中间POJO的好方法?

+0

不确定,但你的意思是像推土机? –

+3

大多数像Jackson或Jersey这样的映射技术自动将Object转换为JSON,反之亦然,您只需要定义一个类似于您期望的JSON的Java类。 – ravthiru

+0

json to pojo:http://www.jsonschema2pojo.org/ –

回答

2

您可以使用有时称为投影的东西。如果实体上有不想在REST API上公开的实体上的字段,则可以在只包含getter子集的实体中实现接口,然后将这些部分序列化为json。

你可以看看Spring Data REST以及它是如何完成的。

+0

谢谢。看起来像一个不错的春季特色。 – Nikolai

相关问题