0

我有这些模型:

@Entity
public class User {
     //...
    @NotBlank private String login;
    @NotBlank private String password;
    @Valid @OneToOne private Person person;
     //...
}

// And

@Entity
public class Person {
     //...  
    @NotBlank private String name;
     //...
}

而用户控制器中的这个插入方法:

@RequestMapping(method = POST)
public String insert(@Valid User user, BindingResult result){

}

而这个表格

<p>Login : <input type="text" name="login" /></p>
<p>Pass : <input type="text" name="password" /></p>
<p>Name : <input type="text" name="person.name" /></p>

Person 和 User 之间的关联是可选的。所以不需要填写person.name输入。

但是当控制器接收到用户的信息时,@Valid注释正在验证用户和个人对象,即使person.name是空的。

我意识到 Controller 总是在接收 Person 对象实例。

person.name当输入未填写时,是否可以在 Person 中接收 null ?

当我person.name从表单中删除输入时,没关系,我收到 null。但是个人姓名是可选的,我不能从表格中删除。

4

1 回答 1

0

尝试在 Person Name 删除 @NotBlank :

@Entity
public class Person {

    private String name;

}
于 2013-05-14T00:57:08.600 回答