2013-03-03 62 views
1

我必須從服務器發送分離的JPA實體到客戶端,它不會回來,但客戶端應該能夠可靠地實例化這些實體。什麼是序列化/反序列化JPA實體的最可靠方法?

  1. 實體在其中具有雙向關係(循環圖),集合,數組和可嵌入鍵。

  2. 我可以控制服務器和客戶端 - 也就是說,我可以在客戶端和服務器中使用相同版本的實體類,並且序列化數據將非常短暫。

  3. 這將用於關鍵操作我必須確保客戶端應該能夠反序列化沒有任何問題。無風險 - 不惜任何代價。反序列化的可靠性比效率/速度/規模

對如何處理這個問題,並用什麼庫最低風險的解決方案的任何建議更重要?似乎有這麼多的選項XStream,JAXB,Java序列化,Json,XMLEncoder等......我有點困惑。

回答

1

備註:我是EclipseLink JAXB (MOXy)的領導者和JAXB (JSR-222)專家組的成員。

EclipseLink MOXy是JAXB(JSR-222)規範的實現。的EclipseLink也提供了許多擴展JPA implementation旨在映射JPA實體:

因爲你的問題也標記你可能有興趣知道,莫西還提供了使用JAXB元數據JSON結合:

說起可靠性莫西目前WebLogic 12.1.1中的默認JAXB提供程序。

+1

我已經將JAXB合併到JPA實體中,並將​​JSON使用MOXy編組。像魔術一樣工作。謝謝 – 2013-03-07 07:20:36

1

我對使用JAXB進行JPA實體類的XML序列化有很好的經驗。在許多基於Web服務的客戶端 - 服務器通信的關鍵項目上得到驗證。

Usualy使用另一個DTO層進行實體序列化是一種很好的做法。通過這種方式,您可以減少關係中的週期,並進一步自定義要序列化的對象。您可以手動映射這些圖層,也可以使用一些工具,如Dozer

通常它只涉及用少量JAXB註釋(@XmlType等)創建對應的POJO,以及這些POJO DTO和JPA實體之間的一些映射。

+0

由於使用JAXB很容易,現在我能得到XML,或者根據我得到的莫西生成JSON的參數。 – 2013-03-07 07:22:03

相關問題