2016-08-16 124 views
3

這就是我在一個項目中看到的: JPA實體類用於將對象持久化到數據庫。 但是當我們創建Jersey端點時,我們通常會消耗並生成JSON。所以,某種POJO被用來表示我們想要發送或接收的數據。因此,每次處理澤西島請求時,「彙編程序」類都用於從實體對象中組裝POJO(反之亦然)。所以,流量就是這樣的。 實體對象 - >彙編器服務 - > JSON。將實體對象轉換爲POJO,反之亦然的最佳方式?

現在我正在開始一個新項目,我不確定這個方法是否是最好的。從一個角度來看,它允許控制我想返回的JSON並將這些表示與持久化類分離。另一方面,它看起來像我可以避免的一個額外的層。

有沒有辦法讓這個翻譯更容易(也許是自動的)?

更新: 感謝您的回答。但是POJO到JSON映射是由Jersey自動完成的。我真正想知道的是,如果有一種將實體類(具有JPA/Hibernate註釋的Java類)映射到JSON而不使用中間POJO的好方法?

+0

不確定,但你的意思是像推土機? –

+3

大多數像Jackson或Jersey這樣的映射技術自動將Object轉換爲JSON,反之亦然,您只需要定義一個類似於您期望的JSON的Java類。 – ravthiru

+0

json to pojo:http://www.jsonschema2pojo.org/ –

回答

2

您可以使用有時稱爲投影的東西。如果實體上有不想在REST API上公開的實體上的字段,則可以在只包含getter子集的實體中實現接口,然後將這些部分序列化爲json。

你可以看看Spring Data REST以及它是如何完成的。

+0

謝謝。看起來像一個不錯的春季特色。 – Nikolai

相關問題