2013-03-30 9 views
5

これは簡単なことです。しかし、私はこれまでのところ答えを見つけることができませんでした。 明らかに何かが欠けているか、そうでなければ私は何か明白なものを紛失しています。Springデータで読み取り専用プロパティを実装する方法は?

私はクラスを持っています。 "id"、 "name"、 "reputation"の3つのフィールドがあります。 「名前」は更新されますが、「評判」は更新されません。私は、DBから取得するときにSpringデータに "評判"の値をフェッチしたいが、Beanを保存するときは無視する。

@Transientアノテーションはありますが、Springはフィールドを完全に無視して、それをまったく設定しません。理想的には、@ ReadOnlyアノテーションのようなものを探しています。

詳細

  • 私はのNeo4jのための春のデータを使用していますが、私は、これはどんな春データの風味に適用されると信じています。
  • これはJersey/JacksonベースのRESTfulサービスのバックエンドです。 **私がGETリクエストを満たしたとき、私は「評判」値を提供したいと思います。しかし、私がPUTアップデートを受け取ったら、私はそれを取るつもりはありません。 **これまでのところ私はJacksonの機能を使うことができました。しかし、既存のPersonオブジェクトを最初にフェッチすることなく、DBを更新できるようにしたいと考えています。
  • 私はこの作業を行うための唯一の方法は、2つのクラスを定義することです.1つは「レピュテーション」フィールドと1つではないフィールドです。しかし、これは本当にclunkyようです。何か簡単ではありませんか?
+0

私は掘り下げていましたが、これは追加が非常に簡単なようです。たとえば、既にReadOnlyRelatedToCollectionFieldAccessorFactoryがあります。私はちょうどノードのプロパティのようなものが必要です。私はなぜこれがまだそこにないのか困惑している。 –

+0

私はSpring DataとJPAで知っていますが、これはJPAアノテーションで処理されます。私はNeo4Jに全く慣れていませんが、私はNeo4jを見て始めました。 – Taylor

答えて

2

セッターなしで一時プロパティを使用できます。その一時プロパティは、保護されるdbプロパティ値を返します。

0

org.springframework.data.annotationの@ReadOnlyPropertyを使用できます。 ReadOnlyProperty

@ReadOnlyProperty 
private Object readOnlyValue; 
関連する問題