我有一个控制器方法,它将根据我在该控制器中作为参数获取的值来更新数据库记录。我正在使用一个类作为参数,具有超过50个属性以及使用@ModelAttribute
的getter setter方法,现在我面临的问题是我可能会得到许多空值或者说,我可能没有获得某些属性作为参数,然后如何在modelattribute中忽略这些属性,只更新那些我从表单中得到的值的字段。
示例:
我的课程如下:
public class PersonalDetails implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", unique = true, nullable = false)
private Long personalDetailsId;
@Column(name = "P_Name")
private String personName;
@Column(name = "P_Surname")
private String surname;
//getter setters below
}
在控制器中,我按如下方式参数:
@ModelAttribute PersonalDetails details
当我从表单提交或此类的任何其他成员获取personName
参数时,会出现问题。如果在按下我的控制器方法时将这些字段传递为null,我该如何避免使用某些字段?
@ModelAttribute是否可以仅更新数据库中接收到值的那些字段并忽略那些为空的字段?