将jpa实体转换为可靠资源的良好策略是什么
Restful 资源并不总是与 jpa 实体进行一对一的映射。正如我所看到的,我试图弄清楚如何处理一些问题:
- 当资源具有由多个实体填充和保存的信息时。
- 当实体中包含要作为资源向下发送的详细信息时。我只能使用Jackson的,但我仍然有问题1,3和4。
@JsonIgnore
- 当实体(如聚合根)具有嵌套实体,并且您希望包含其部分嵌套实体,但仅包含一定程度的嵌套作为资源时。
- 当一个实体的一部分属于一个父实体时,当其一部分属于另一个父实体时,当其一部分为另一个父实体时,要排除一个单独的部分时。
- 爆炸循环引用(我得到的主要是使用杰克逊的JSOG
@JsonIdentityInfo
)
可能的解决方案:我能想到的处理所有这些问题的唯一方法是创建一大堆“资源”类,这些类将具有构造函数,这些构造函数采用所需的实体来构造资源,并在其上放置该资源所需的 getter 和 setter。这是不是太过分了?
为了解决 2、3、4 和 5,我可以在将实际实体发送给 Jackson 之前对实际实体进行一些预处理和后处理,以将我的 pojo 序列化或反序列化为 JSON,但这并不能解决问题 1。
这些都是我认为其他人会遇到的问题,我很好奇其他人想出了什么解决方案。(我目前正在使用JPA 2,Spring MVC,Jackson和Spring-Data,但对其他技术开放)