2016-01-07 35 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") 
    }