【发布时间】:2018-05-08 11:52:39
【问题描述】:
我有三个实体,EntityA、EntityB 和 EntityC,这样
- EntityA 与 EntityB 具有@OneToMany 关系
-
EntityC 与 EntityB 有@OneToMany 关系
-> EntityB 与 EntityA 和 EntityC 有一个 @ManyToOne 关系。
A B C
我有一个 GET REST 服务,它给定一个 EntityA ID 返回一个代表 EntityA java 对象的 bean (BeanA)。响应是从 BeanA java 对象生成的,它产生一个循环引用。
我使用 bean 来驱逐它,问题是我们试图使用 BeanUtils.copyProperty(dest, ori) 来从 JPA 实体生成 bean 响应,但结果响应包含 EntityB 列表对象而不是 BeanB 响应对象的列表。
是否有任何方法或任何库来生成正确的响应 bean?
注意:使用惰性不是一种选择,因为在其他一些方法中我想获取相关实体。
【问题讨论】:
-
你能提供一些代码吗?
Bean如何包装Entity? 循环引用是否由于生成JSON作为响应?要提供任何堆栈跟踪吗? -
用更短的时间编写这个问题,您可以手动生成将实体转换为 DTO 的代码。该代码将超级简单,易于编写、阅读和理解,类型安全,比基于反射的方法更快,抗重构。
标签: java jpa entity apache-commons-beanutils