Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JPA中的空版本字段?_Java_Hibernate_Jpa_Version_Bean Validation - Fatal编程技术网

Java JPA中的空版本字段?

Java JPA中的空版本字段?,java,hibernate,jpa,version,bean-validation,Java,Hibernate,Jpa,Version,Bean Validation,中的任何内容都不表示它不能为null 跑步后 import javax.validation.Validation; import javax.validation.Validator; import org.junit.Test; import static org.junit.Assert.assertFalse; public class Test { @Test public void test() { //Using Hibernate V

中的任何内容都不表示它不能为null

跑步后

import javax.validation.Validation;
import javax.validation.Validator;

import org.junit.Test;

import static org.junit.Assert.assertFalse;

public class Test
{
    @Test
    public void test()
    {
        //Using Hibernate Validator 4.1.0.Final...
        Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
        assertFalse(validator.validate(new Foo()).isEmpty()); //why does this fail??
    }
}
其中Foo.class只是

import javax.persistence.Entity;
import javax.persistence.Version;

@Entity 
public class Foo
{
    @Version
    private final Integer version = null;
}
测试失败,未报告@Version验证错误


这是否意味着@Version注释字段可以为空?

@Version只定义了一个特定字段用于乐观锁定。它不影响数据库中的列本身,也不影响验证。因此,如果要强制非空值,则必须使用其他注释

如果将“版本”字段保留为null,则在尝试执行更新时将出现异常