2017-08-23 1 views
0

フロントエンドUIでは無視するフィールドが必要ですが、同じフィールドはバックエンドで計算されるため、Postgres DBに格納する必要があります。 Jsonbオブジェクト値のオブジェクトを新しいオブジェクトに変換する以外に、このユースケースのためにJackonには何らかの機能があります。フロントエンドUIの@JsonIgnoreフィールドとそれをJsonbに含めるjsonシリアル化をPostgresに格納する

Test.java

public class Test { 

    private Integer score; 

    private Date dateValidated = null; 

    private Boolean consent = false; 

    private Date dateConsented; 

    public void setConsent(Boolean consent) { 
     this.consent = consent; 
     this.dateConsented = consent ? new Date() : null; 
    } 

} 

の同意に基づき、dateConsentedが設定され、私は私のサービスの呼び出し中にこれを設定する必要はありません。私はPostgresの(Jsonb)でJSONオブジェクトとしてこのテストを保存するこの

通報

ため@JsonIgnoreを使用することができます。だから@JsonIgnoreを使用する場合、dateConsentedもDBで無視されます。私はそれが起こることを望んでいません。これに対する提案/解決策はありますか?

+1

あなたのJavaクラスを表示します。コードなしあなたのアイデアは明確ではありません(個人的には完全にはっきりしません) –

+0

UIにフィールドを表示できませんか?またはJSONで送信する前にnullに設定しますか? – tima

答えて

0

自分用のリソースクラスを作成し、このクラスをそのクラスに変換するだけです。最後に、このリソースクラスをフロントエンドUIに戻してください.FreviewFactoryをspringから見てください。

+0

私はこのオプションを私の質問自体に言及しました。私はjacksonや他のフレームワークの解決策があるかどうかを確認するためにこの質問をしました。 – Libin

+0

しかし、これはこの場合の通常のデザインパターンです。日付のようにスコアフィールドを表示することにした場合、リソースクラスを変更するだけでこれを処理できます。このソリューションのおかげで、あなたのUIを除いてあなたのプログラムにはどこにも影響はありません。 –

関連する問題