2017-06-21 16 views
2
私はアプリケーションスプリングブートを研究開発をしてい

が、私は私が変更されたフィールドのみその後、フロントエンドからもらったユーザーを更新すると、ユーザーがは、私はこれらを比較するために持っている唯一の

public class User { 

    private String name; 
    private String firstName; 
    private String codeEmpl; 
    private String codeCompany; 

    // Getters & setters 
} 

をオブジェクトに比較したいnullではない比較しますフィールドをデータベースに保存します。私が受け取ったユーザーの保存情報をコピーします。私の質問は、フロントエンドから受け取ったダイナミックフィールドだけを比較する方法です。受信したオブジェクトの保存された情報のみをコピーする方法はありますか?

比較: 私はequalsをオーバーライドしますが、equalsはすべてのフィールドを1つずつ比較します。コピーに関する

: 私は

BeanUtils.copyProperties(orig, dest); 

を使用しかし、これはそれが

あなたが任意のアイデアを持っているでしょうすべてのフィールドをコピーしますか?

敬具

+2

これはあなたのやりたいことと非常によく似た答えです:https://stackoverflow.com/a/3521314/7303349 –

+0

この回答がありましたか? https://stackoverflow.com/a/3521314/2387977 – Dherik

+0

@SimonVisserに感謝しますが、コピーした後は、宛先の原点フィールドを保持する必要があります。たとえば、3つのフィールドを持つ別のフィールドに2つのフィールドを持つユーザーをコピーする場合、宛先ユーザーに3つのフィールドがないようにする2 – Victor

答えて

0

あなたは複雑なソリューションを実装する場合を除き、私はあなたが編集処理の最初のステップとして、フロントエンドにバックエンドからのすべてのフィールド値で豆を送信することをお勧めします。次に、編集後に、変更された値と変更されていない値でBeanをフロントエンドからバックエンドに送り返します。 1つのフラグフィールドを使用して、変更が発生したかどうかを示すことができます。

バックエンドのすべての値を持つBeanを作成したら、使用しているデータベースまたは永続インフラストラクチャに永続化することができます。

実際、Angular.jsやBackbone.jsのようなフレームワークは、REST APIとやり取りするときに動作するはずです。

+0

私が知っている@Andresに感謝私は複雑ですが、問題はすべての値をバックに送ることができる2つのフロントエンドシステムと、ユーザーに関する情報 – Victor

関連する問題