2016-01-07 30 views
3

我看着代碼,並注意到org.springframework.data.rest.webmvc.json.PersistentEntityJackson2Module。$ AssociationOmittingSerializerModifier.updateBuilder只需跳過版本屬性。爲什麼春季數據REST忽略@ javax.persistence.Version領域,而序列化的實體?

對於項目資源,版本字段是ETag頭可用。 但對於一個集合資源,我們需要的項目版本ID兌現樂觀鎖在更新的項目。

我們怎樣才能得到一個集合資源的每個項目的版本號?我們有任何配置來啓用它嗎?

感謝您的幫助

+0

看一看[投影和摘錄](http://docs.spring.io/spring-data/rest/docs/current/reference/html/#projections-excerpts),它可以幫助你。無論如何,如果您需要提供一些示例代碼,就像你所涉及的實體,結果你和結果,我們可以闡述一些具體的解決方案。 –

+0

你有沒有想過這樣做的正確方法? – Snekse

+0

不幸的是...... :( – rsingh25

回答

0

您必須手動完成。對於我的目的來說,這工作正常,因爲我更新之前加載現有的實體,然後從REST實體複製屬性。

if (restEntity.version != null && restEntity.version != existing.version) { 
     throw new OptimisticLockingFailureException("version number from REST doesn't match the database") 
    }