2011-12-08 5 views
4

を更新していない私はusernamename、などを持っているエンティティUser ...春Rooのパスワードフィールドを更新するか、すべてのフィールド

Userpassword性質を持っているがあります。そして、私はlist/showフォームでレンダリングを無効にしましたが、更新フォームでは、フィールドはtype="password"に設定されています。

は、どのようなバグは私には星が存在しないようにパスワードを再入力することなく、ユーザーを更新することはできませんということで、パスワードを入力しない場合、passwordnullまたは""に設定されています。

どうすれば迂回できますか?

別の問題もあります。更新フォームから一部のフィールドを削除すると、他のフィールドはすべてnullに設定されます。 私が望むのは、ユーザーがいくつかのentitiyのいくつかのフィールドを更新できるようにすることです。

+0

あなたは明確にする必要があります。 Rooは、それ自体が非常に適応性があります。あなたはSpring MVC(RooはWeb MVCと呼ばれています)の足場を使用していますか? – Pace

答えて

1

私は四つのフィールドF1、F2、F3F4ではFooエンティティを作成しました。

は、このエンティティのupdate.jspxでは、私はフィールドF1の属性= "false" をレンダリングを設定します。 FooController更新方法で

FOOパラメータオブジェクトが更新される前に、以下のように我々はしたくないので、私は、DBから古い値をフェッチし、パラメータFOOでそれを固執このフィールドを更新する必要があります。

Foo fromDB=Foo.findFoo(foo.getId()); 
    foo.setF1(fromDB.getF1()); 
    foo.merge(); 

私は、更新操作が完了した後はFooエンティティでF1の古い値が変更取得されていないことを確認することができています。

これは、ユーザーがエンティティオブジェクトの一部のフィールドを更新しないようにするための1つの方法であり、この方法があなたに役立つことを願っています。

乾杯、

関連する問題