(name、street、cityなど)を持つUserDataのプロパティの1つをdatabgaseに更新したいので:
リレーションシップとDBプロパティ: このUserDataは、User.hbm.xmlのcascade = "save-update"が使用されているユーザーと双方向のリレーションシップを持っているため、
ユーザーはDBにこのプロパティを持っています(id_user、外部キー: id_UserDetail、status)
UserDataには(id_UserDetail、外部キー: id_User、およびクラシック情報フィールドname、street、telephoneなど)があります
このメソッドを使用してデータベースを更新します: Updateメソッド
public void ajaxNameListener(AjaxBehaviorEvent event) {
UserData usrData = new UserData();
userData.setName(name); // I want update only name property,but unfortunately rest is also overwriten to null in DB
User user = BeanFactory
.getHotelDAOService(User.class)
.findbyIdIndetifier(selectedUserId); // selectedUserId is just identifier from my list of user,so here i declared which concrete User be updated by Id of Users
user.setUserData(userData);
BeanFactory.getHotelDAOService(User.class)
.update(user);
}
このメソッドは<a4j:>
私のJsfページでリスナーフォームとして使用されていますが、これには問題はありません。
どういうわけかこのメソッドを修復して、必要なものだけを更新し、残りは変更しない必要がありますが、この場合、たとえばフィールド'name'でこの更新フィールド名を特定のIDで変更することに成功しましたが、残りのUserData列はNULLに上書きされ、
誰かが私にこのメソッドを変更する方法についてアドバイスを入力できますか?または、このケースに基づいて独自のメソッドを作成することもできます。これにより、更新したいフィールドのみが更新され、データベースではNULLになりません。投稿と応答に感謝します、乾杯、