http://docs.oracle.com/javaee/6/api/javax/persistence/Version.htmlには、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 アノテーションが付けられたフィールドが null になる可能性があることを意味しますか?