【发布时间】:2014-04-11 04:46:00
【问题描述】:
我有一个类定义如下:
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>
【问题讨论】:
-
@NotBlank是否检查空白? -
验证通常(并且应该)在命令 bean 上完成。
-
谢谢,您能否指导我参考一些有关如何执行此操作的文档?
-
对this 问题的回答说明了很多关于验证的内容。
标签: spring hibernate validation bean-validation hibernate-validator