您是否認爲只使用GWT和Hibernate聽起來像是一個需要非常豐富的UI的Web應用程序的「理智」解決方案?GWT和休眠
GWT和休眠
回答
簡而言之,是的。
你似乎有2個要求:
豐富的用戶界面: 正如你可能知道,GWT可以用來製作豐富的UI應用程序。可能性實際上是無止境的。 Hibernate不點起到任何作用1.
可擴展性, 確實是有很大的開銷與datamodels因爲每個Hibernate的實體將它們發送到客戶端時,要與GWT模型映射。正如用戶在上面指定的,有第三方應用程序可以幫助您這樣做。添加新的數據模型將觸發對服務器和客戶端代碼的更改。但是,如果你的架構足夠強大,這應該不是一個大問題。
是的,它使用了很多。基本上,你有兩個選擇:
- 使用的DTO,總是初始化服務器
- 使用您的休眠實體gilead
GWT和Hibernate是不是一個自然的匹配。有關爲什麼以及如何將它們一起使用的完整信息,請閱讀http://code.google.com/intl/es-ES/webtoolkit/articles/using_gwt_with_hibernate.html。
但概括起來講,你將有3個選項:
- 使用普通的數據傳輸對象(DTO的)。
- 使用推土機。通過推土機,您仍在使用DTO,但推土機將爲您完成大部分工作。
- 使用Gilead進行GWT端和服務器端之間的「神奇」轉換。
以我的經驗來看,「神奇」的解決方案在工作時非常棒。當他們不這樣做時,祝你好運。所以,如果我在你的鞋子裏,我會選擇選項1或2.
Gilead沒有更多的維護,沒有保證它與Hibernate 3.5+一起工作(https://groups.google.com/forum/#!msg/toulouse-jug/pL1bNG3-gc0/rolqY-p-qGsJ) – 2012-09-18 20:47:32
Gilead在考慮GWT應用程序時導致最大的誤導。將GWT應用程序設計爲三層體系結構時,首先要考慮的是Web層是gwt生成的JavaScript UI,而應用程序層是您的RPC服務,但事實並非如此。它們都屬於Web層。在考慮Web層時,通常會對要顯示的數據進行數據轉換。但是使用Gilead時不會發生這種情況,而且您沒有機會這樣做。所以我總是推薦使用像Dozer這樣的數據映射器,當您將當前所有數據從數據庫傳輸到UI時。當您的應用程序增長時,您將需要轉換的時間到了!
我認爲已經在GWT 2.1+中解決的更好的解決方案是通過使用RequestFactory和Entity/ValueProxy機制。爲了更詳細地瞭解GWT中的這種成語,請參考此http://code.google.com/webtoolkit/doc/trunk/DevGuideRequestFactory.html
謝謝!看起來谷歌正在填補自己的空白,這讓事情變得更容易,因爲不需要依靠第三方的魔法,就像rreyes1979所建議的那樣。 – 2011-05-13 07:49:15
當然是。
我做了一個教程,幫助人們知道如何整合庫。檢查它:
http://singularityprogramming.wordpress.com/2012/04/06/gwt-2-4-0-hibernate-3-6-10-final/
確實是一個很好的架構,但你需要這一個完美的匹配。
http://beanlib.sourceforge.net/
//To response RPC with just the current entity
return new Hibernate3DtoCopier().hibernate2dto(entity);
//To response RPC with the entity with their related entities.
return new Hibernate3DtoCopier().hibernate2dtoFully(entity);
- 1. 休眠,Gilead公司和GWT
- 2. GWT和休眠 - 使用休眠時的NoClassDefFoundError
- 3. GWT 2.4,GWTP和休眠+ Maven與Eclipse
- 4. GWT +休眠+節省帶寬
- 5. glassfish和休眠
- 6. Struts2和休眠
- 7. 休眠和Flyweight
- 8. 初始化休眠與GWT問題
- 9. gwt休眠一對多數據提取
- 10. GWT rpc.SerializationException在休眠ManyToOne關係對象
- 11. GWT休眠彈簧序列化問題
- 12. 休眠,GWT和Gilead:會話,事務和緩存
- 13. 休眠和MySQL:UTC datetime
- 14. 休眠和日期
- 15. 休眠和struts2 createcriteria
- 16. 休眠,C3P0和MySQL:
- 17. 休眠mappedBy和ManyToMany
- 18. 休眠/ @ElementCollection和@XmlRootElement
- 19. JavaFX TableView和休眠
- 20. Java Mvc和休眠
- 21. 交易和休眠
- 22. 休眠和鎖定
- 23. 使用休眠和GWT時提高性能
- 24. 休眠和求和值
- 25. 休眠。
- 26. 休眠:
- 27. Spring JPA休眠和AttributeConverter
- 28. 休眠> 3.3和c3p0
- 29. 休眠和資源利用
- 30. 使用Spring和休眠/ JPA
做休眠+ GWT搜索,你會發現,答案是「是」 – Bozho 2011-05-11 21:17:43
謝謝你的回答。我已經做到了。縮放是我關心的問題。 – 2011-05-11 23:33:14