我有一个定义如下的类:
import org.hibernate.validator.constraints.NotBlank;
public class Game {
@GeneratedValue(strategy = GenerationType.AUTO)
@Id
@Column(name = "id")
Long id;
@NotBlank
@Column(name = "title")
String title;
...
然而,当我执行以下测试时,并没有抛出任何验证异常:
@Test(expected = ConstraintViolationException.class)
public void thatExistingGameGivenBlankTitleCannotBeSaved(){
Game game = new Game("SimCity 2000");
gameDAO.save(game);
game.setTitle(" "); //game.setTitle(null) doesn't work either
gameDAO.save(game);
}
如何在保存已持久化的对象时触发验证程序?最好通过Java配置。
我的验证依赖项:
<!-- validation -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.1.0.Final</version>
</dependency>
<dependency>
<groupId>javax.el</groupId>
<artifactId>javax.el-api</artifactId>
<version>2.2.4</version>
</dependency>
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>javax.el</artifactId>
<version>2.2.4</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator-cdi</artifactId>
<version>5.1.0.Final</version>
</dependency>