【发布时间】:2013-07-26 07:55:17
【问题描述】:
Restful 资源并不总是与您的 jpa 实体具有一对一的映射关系。正如我所看到的,我正在尝试解决一些问题:
- 当资源包含由多个实体填充和保存的信息时。
- 当一个实体中包含更多您想作为资源发送的信息时。我可以使用 Jackson 的
@JsonIgnore,但我仍然会遇到问题 1、3 和 4。 - 当一个实体(如聚合根)具有嵌套实体,并且您希望包含其嵌套实体的一部分但仅作为您的资源的嵌套级别。
- 当您想要排除一个实体的一部分时,它是一个父实体的一部分,但当它是不同父实体的一部分时排除一个单独的部分。
- Blasted 循环引用(我主要使用 Jackson 的
@JsonIdentityInfo与 JSOG 合作)
可能的解决方案: 我能想到的处理所有这些问题的唯一方法是创建一大堆“资源”类,这些类将具有构造函数,这些构造函数采用所需的实体来构造资源并为该资源放置必要的 getter 和 setter .这是矫枉过正吗?
要解决 2、3、4 和 5,我可以在将实际实体发送到 Jackson 以将我的 pojo 序列化或反序列化为 JSON 之前对实际实体进行一些预处理和后处理,但这并不能解决问题 1。
这些都是我认为其他人会遇到的问题,我很好奇其他人会提出什么解决方案。 (我目前正在使用 JPA 2、Spring MVC、Jackson 和 Spring-Data,但对其他技术开放)
【问题讨论】: