如何将实体Bean转换为值对象?

时间:2011-06-17 07:00:39

标签: java java-ee ejb-3.0

我正在开发一个为客户端和浏览器提供服务的服务器系统,我决定使用JPA处理数据库存储的OR / Mapping。这导致实体Bean类暴露给客户端,因此我尝试通过使用值对象和数据传输对象来避免这种设计。这意味着我需要POJO,以及在不同系统轮胎上交换POJO和Entity Bean类的机制。

我的问题是,是否有任何成熟的设计模式或EJB指定的服务可以自动执行此操作?我真的很讨厌设计一些POJO - Entity Bean一对一映射,很难解耦和更新。

提前致谢

2 个答案:

答案 0 :(得分:4)

  

这导致实体Bean类   因此,我试图通过使用值对象和数据传输对象来避免这种设计。

为什么呢?有什么问题证明这种残暴的代码重复是正确的?

“数据传输对象”和错误使用“值对象”名称是EJB 2实体Bean所必需的反模式,以避免过多的服务器往返。

如果您使用JPA,则没有实体bean。您的实体 POJO,将它们暴露给客户端绝对没有错 - 实际上这是关于JPA的最好的事情之一。

答案 1 :(得分:2)

您可能希望查看Dozer,这是一个使用反射根据字段名称映射bean的bean映射器。它为您提供了一些防止更改的保护,因为如果一个类发生更改但您希望保持映射的类相同,则可以手动指定映射。