1

フロントエンドとして struts2 を使用し、ORM として hibernate 3.0 を使用しています。選択したドロップダウン リストに基づいて顧客の住所を更新したい。PINを除くすべてのフィールドは必須です。ユーザーがアドレスを更新して PIN を空白のままにすると、PIN も状態などで更新されます。 PINが空白の場合、PINを更新したくありません。これを達成する方法は、Hibernate がこのような特定の列を更新する何かを持っているかです。

if(getPin()==null||getPin()=="")
{
    @update(false)  //make update false
}

私の問題についてのアイデアを得るためにスニペットをチェックしてください。ここに画像の説明を入力

4

2 に答える 2

0

あなたがしなければならない唯一のことは

1) 顧客をロードする 2) 変更されたすべてのフィールドをまだ管理されているオブジェクトにコピーします。ただし、null の場合は固定されます

切り離されたエンティティを null フィールドと単純にマージするだけでは十分ではありません。これは、Hibernate がエンティティを削除するかどうかを判断できないためです。

そのために Dozer のようなフレームワークを使用することを検討してください。

于 2012-12-14T07:23:34.157 に答える
-1

オブジェクトの setPin(String pin) メソッドでロジックを処理することをお勧めします。

あなたはそうすることができます。

 public void setPin(String pin){
   if(pin != null && !pin.isEmpty()){
        this.pin = pin;
     }
 }
于 2012-12-14T06:17:20.127 に答える