JAVA 中具有循环引用的 bean 实体
Entity to bean with cyclic reference in JAVA
我有三个实体,EntityA、EntityB 和 EntityC,这样
- EntityA 与 EntityB 具有@OneToMany 关系
EntityC 与 EntityB 具有@OneToMany 关系
-> EntityB 与 EntityA 和 EntityC 有一个@ManyToOne 关系。
A <=> B <=> C
我有一个 GET REST 服务,它给 EntityA ID returns 一个代表 EntityA java 对象的 bean (BeanA)。响应是从 BeanA java 对象生成的,它会产生一个 循环引用 .
我使用一个 bean 来驱逐它,问题是我们试图使用 BeanUtils.copyProperty(dest, ori) 来从 JPA 实体生成 bean 响应,但结果响应包含EntityB 对象列表而不是 BeanB 响应对象列表。
有什么方法或库可以生成正确的响应 bean 吗?
注意:使用惰性不是一种选择,因为在其他一些方法中我想获得相关实体。
看看 JSON 序列化器。
通常有类似 @JsonIgnore 注释 的东西可以用来打破循环。
我有三个实体,EntityA、EntityB 和 EntityC,这样
- EntityA 与 EntityB 具有@OneToMany 关系
EntityC 与 EntityB 具有@OneToMany 关系
-> EntityB 与 EntityA 和 EntityC 有一个@ManyToOne 关系。
A <=> B <=> C
我有一个 GET REST 服务,它给 EntityA ID returns 一个代表 EntityA java 对象的 bean (BeanA)。响应是从 BeanA java 对象生成的,它会产生一个 循环引用 .
我使用一个 bean 来驱逐它,问题是我们试图使用 BeanUtils.copyProperty(dest, ori) 来从 JPA 实体生成 bean 响应,但结果响应包含EntityB 对象列表而不是 BeanB 响应对象列表。
有什么方法或库可以生成正确的响应 bean 吗?
注意:使用惰性不是一种选择,因为在其他一些方法中我想获得相关实体。
看看 JSON 序列化器。
通常有类似 @JsonIgnore 注释 的东西可以用来打破循环。