javax.validation.Valid与Spring MVC一起使用

javax.validation.Valid与Spring MVC一起使用,java,hibernate,validation,spring-mvc,Java,Hibernate,Validation,Spring Mvc,我在表单提交期间使用@Valid进行验证,遇到属性为null的错误。我有一个Country类,它的属性包括code、name和createdBy,所有这些属性都带有预定义的值。当用户加载页面时,表单上加载的属性仅为code和name。用户更改值并执行提交后,createdBy的值为空,因此验证失败。我正在考虑将createdBy值存储在html上的一个隐藏字段中,以便验证能够通过。考虑到安全性,我认为任何人都可以修改隐藏字段的值。有更好的方法吗?OpenSessionInViewFilter会有

我在表单提交期间使用
@Valid
进行验证,遇到属性为null的错误。我有一个Country类,它的属性包括
code
name
createdBy
,所有这些属性都带有预定义的值。当用户加载页面时,表单上加载的属性仅为
code
name
。用户更改值并执行提交后,
createdBy
的值为空,因此验证失败。我正在考虑将createdBy值存储在html上的一个隐藏字段中,以便验证能够通过。考虑到安全性,我认为任何人都可以修改隐藏字段的值。有更好的方法吗?OpenSessionInViewFilter会有任何帮助吗

已更新

很抱歉,我忘了提到,浏览器从服务器获取的数据是JSON格式的(JSON对象列表)。在提交表单之前,a编写了一个JavaScript来基于html表中所选的对象(带有ID)填充表单。所以我发送给服务器的基本上是

<input type="hidden" name="id"/>
<html:field name="code" labelCode="label.code" type="text"/>
<html:field name="name" labelCode="label.name" type="text"/>


您是否创建了该国家/地区的实例,并将其放在modeal和view地图上?如果检索此信息,createdBy字段不得为空。。。我认为这不是一个好办法。无论如何,如果你用源代码更新你的问题可能会有帮助。你不能简单地删除你的
Country
bean(或XML等价物)的
createdBy
属性上的
@NotNull
吗?是的,我可以。我想我必须确保在插入数据库之前设置属性。您还可以在相应的服务或dao方法中自动添加其值。实际上,您可以在实体中使用@PrePersist on private method设置此字段。