如何使用Spring Data实现只读属性?

时间:2013-03-30 00:15:49

标签: java neo4j spring-data spring-data-neo4j

这应该是一件简单的事情!但到目前为止我一直无法找到答案。 要么我缺少一些明显的东西,否则我会遗漏一些明显的东西......

我有一个班,比如说。有三个字段 - “id”,“name”和“reputation”。 让我们说我愿意更新“名称”而不是“声誉”。我希望Spring Data在从DB中检索时获取“信誉”的值,但在我保存bean时忽略它。

@Transient注释就在那里,但是Spring完全忽略了该字段并且根本没有填充它。理想情况下,我正在寻找类似@ReadOnly注释的东西。

更多详情

  • 我正在使用Spring Data for Neo4j,但我相信这适用于任何Spring Data风格。
  • 这是基于Jersey / Jackson的RESTful服务的后端。 **当我满足GET请求时,我想提供“声誉”值。但是当我收到PUT更新时,我不想接受它。 **到目前为止我可以使用杰克逊的功能。但我希望能够更新数据库,而无需先获取现有的Person对象。
  • 我能想到的唯一方法是定义两个类 - 一个带有“信誉”字段,另一个没有。但这看起来很笨重。是不是有更简单的东西?

2 个答案:

答案 0 :(得分:2)

您可以在没有setter的情况下使用transient属性。该瞬态属性将返回要保护的db属性值。

答案 1 :(得分:0)

您可以使用org.springframework.data.annotation中的@ReadOnlyProperty。见ReadOnlyProperty

@ReadOnlyProperty
private Object readOnlyValue;