【发布时间】:2017-11-02 11:46:12
【问题描述】:
将 Jackson 与 Hibernate 结合使用,我有一些懒惰的获取字段。我希望它们由它的 id 表示(类似于@JsonIdentityReference 的效果),而不是嵌入整个对象或作为 null。
但是,我只能达到以下效果:
- 使用 Jackson-datatype-hibernate,延迟获取的字段被序列化为 null,而我需要参考。
- 使用@JsonIdentityReference,并将fetchType 更改为eager,我将字段序列化为id(参考)。但是,该字段被急切地获取,这对性能来说是一个缺点。
我想要一个具有上述两种情况优势的解决方案:该字段是惰性获取的,因此除非需要,否则无需查询数据库。生成的 Json 对象中包含一个 id 引用,以便客户端可以发出单独的查询以获取具有引用的实体。
我的意图类似于 spring data rest 所做的:同一聚合根中的实体嵌入到聚合根中。与其他聚合根的关系表示为链接。
提前致谢!
【问题讨论】:
标签: hibernate jackson spring-data-jpa lazy-loading