我想知道處理實體bean(JPA 2)到DTO的映射的最佳方式是什麼。 由於您不能直接使用實體bean和GWT,所以您需要改爲處理DTO。GWT +實體+ JPA + DTO +推土機
我有幾個實體與各種關係(OneToOne,OneToMany,ManyToMany與連接表等)。 最初我開始用手將所有實體DTO的一類MyEntityTransform.java的幫助下用類似的方法:
static final public CarBean persistant2Bean(CarPersist) {
return new CarBean(cartPersist.getId(), carPersist.getName(),
carPersist.getDescription());
}
其它方法有:persistent2BeanCollection(...),persistent2BeanMap(...),bean2Persistent (...),bean2PersistentCollection(...)
這在處理集合時變成了一項挑剔的工作,特別是當同一個實體引用了其他幾個實體時;
我一直在考慮使用DOZER框架來處理實體和DTO之間的映射。 在此mentionned:http://code.google.com/intl/fr/webtoolkit/articles/using_gwt_with_hibernate.html
但是我不知道它如何妥善處理各種JPA映射(多對多例如),有多少工作是配置它在推土機豆-mappings.xml文件。 另外我猜這個框架是密集使用反射來執行映射操作。這種方法比「手動」執行的映射慢得多,例如,當我在MyEntityTransform.java類中使用方法時。
你有什麼建議?我對大家使用GWT處理JPA實體的經驗感興趣。
謝謝。
Celinio
http://www.celinio.net/techblog
感謝您的反饋。不確定我會做什麼,因爲性能可能會受到影響,因爲Dozer密集使用反射來將實體映射到DTO。 – 2011-05-02 04:28:05
看看Dozer FAQ:http://dozer.sourceforge.net/documentation/faq.html#dozer-perf。當性能真的成爲一個問題時,您擔心我認爲在開始項目之前您必須對不同的框架進行基準測試。 – malte 2011-05-04 12:10:58