我想知道处理实体 bean(JPA 2)到 DTO 的映射的最佳方法是什么。由于不能通过 GWT “直接”使用实体 bean,因此您需要处理 DTO。
我有几个具有各种关系的实体(OneToOne、OneToMany、ManyToMany 与连接表等)。最初,我开始在 MyEntityTransform.java 类的帮助下手动将所有实体转换为 DTO,方法如下:
static final public CarBean persistant2Bean(CarPersist) {
return new CarBean(cartPersist.getId(), carPersist.getName(),
carPersist.getDescription());
}
其他方法是:persistent2BeanCollection(...)、persistent2BeanMap(...)、bean2Persistent(...)、bean2PersistentCollection(...)
在处理集合时,这成为一项挑剔的任务,尤其是当同一个实体引用了几个其他实体时;
我一直在考虑使用 DOZER 框架来处理实体和 DTO 之间的映射。这里提到:http ://code.google.com/intl/fr/webtoolkit/articles/using_gwt_with_hibernate.html
但是我不确定它处理各种 JPA 映射(例如许多)的能力以及在 dozer-bean-mappings.xml 文件中配置它的工作量。另外我猜这个框架正在密集地使用反射来执行映射操作。这种方法比“手动”执行的映射要慢得多,例如当我使用 MyEntityTransform.java 类中的方法时。
你有什么建议?我对每个人使用 GWT 处理 JPA 实体的经验感兴趣。
谢谢。
切利尼奥