2011-07-21 11 views
1

私はJavaを使用していないので少し助けが必要です。私はPlay Frameworkを使用しています。Java JPAフィールドにフィールドを注入する

私は、次のようなフィールドでGenericModelを拡張Entityクラスを持っている:私はゲッターを使用して、追加のフィールドを追加したい

@Column(name = "description") 
private String description; 

、のはgetToStringそれを呼びましょう、基本的にして、読み取り専用の文字列が含まれていますエンティティの文字列表現。

オブジェクトがJSONレスポンスとして送信され、JavaScriptがこのフィールドを読み込み、エンティティを文字列として表現する必要がある場所などに表示するため、これが必要です。

これを行うにはどうすればよいですか?

+0

他に誰かがこれについて考えていますか? –

+0

私たちの問題はGsonBuilderにあります!私たちが持っているバージョンはgetterとsetterをサポートしていません。 –

+0

もう少し説明できますか?フィールドとして、またはゲッタとして、あるいはその両方として、新しいプロパティが必要ですか?どうして? –

答えて

1

それを呼び出します。ビルダーは、ライブラリのソースが変更されていない限り、ゲッターとセッターを解析しているようには見えません。

2

私はPlayフレームワークの専門家はいませんが、おそらく@Transientアノテーションを見ておくべきでしょう。

@Transientでマークされたフィールド(およびJPAプロパティアクセスを使用している場合はgetter/setter)はJPAによって無視されますが、通常は他のフレームワークで考慮されます。

+0

@Transientでメンバー変数を追加しました。これはJSONレスポンスで表示されます。ニース。それはメンバーの機能として表示されません。 getToString()として実装しようとしています –

+0

Playは私のゲッターメソッドを完全に無視しています。メンバ変数は正常に動作しますが、私はメソッドが必要です。 –

+0

申し訳ありませんJosef、私はJPAの専門家ですが、Playフレームワークではありません。 –

0

エンティティの文字列表現(JSon形式)を返す読み取り専用のメソッドが必要なことを私が理解してください。

あなただけのデフォルトのtoStringメソッドオーバーライドすることができます:

@Override 
public String toString() { 
    return "your_json_string"; 
} 

を、必要なときに私がいる問題はGsonBuilderを使用しての副作用だった

+0

いいえ、私はそれをtoStringなどの余分な読み取り専用フィールドとして追加する必要があります。 エンティティはGsonBuilderを使用してシリアル化されています。私はtoStringを追加のフィールドとして文字列を含む別のカラムにする必要があります。 toStringメソッドをオーバーライドすると、JSONレスポンスに表示されません。 –

関連する問題