欢迎来到天天文库
浏览记录
ID:36841074
大小:847.31 KB
页数:22页
时间:2019-05-10
《Hibernate验证器》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、HibernateORM最佳实践第11章Hibernate验证器回顾使用注释定义对象关系映射使用HibernateAnnotations建立一个项目利用注释进行各种对象关系映射利用注释定义命名查询2目标了解Hibernate验证器框架使用Hibernate验证器内建约束Hibernate验证器国际化资源包学会编写自定义验证器对关联对象进行约束验证3创建Hibernate验证器下载资源包:Hibernate验证器提供在代码中使用注释来定义各种约束条件①使用内建约束(HibernateValidator本身定义)②使用自定义约束4示例内建约束@Length,检查字符串长度是否符合范围
2、内建约束@NotNull,检查值是否非空5运行保存约束没通过返回的具体信息产生异常不满足约束条件6结果修改上述程序,将company的属性设置不为null,情况怎样?7结果修改name的属性符合约束条件8内建约束9使用自定义约束实现自己的约束:约束名称+约束实现类①使用约束描述符@interface定义约束名称@ValidatorClass(自定义验证器实现类)如:@WebAddress(prefix=“http://www.”)②自定义验证器实现类必须实现接口:Validator如果该验证器用来检查属性值,还要实现:PropertyCo
3、nstraint接口实现方法isValid(),定义满足约束的条件initialize()初试化约束属性约束名称约束属性10示例自定义标记约束,要求Company的属性url以http://www.开头描述自定义验证器类约束目标是属性,且在运行时读取使用定义注解WebAddress,包含属性prefix、messageWebAddress.javamessage是用于描述约束违规的默认字符串,它是强制要求的。importstaticjava.lang.annotation.ElementType.FIELD@Target(FIELD)11自定义验证器代码WebAddressVal
4、idator.java实现接口注解约束符的属性初始化@WebAddress(prefix=“http://www.”)约束条件的设置12运行自定义约束13结果14错误信息国际化验证器能够根据不同环境返回符合国际化错误信息利用java.util.ResourceBundle的子类即ListResourceBundle或PropertyResourceBundle资源绑定15示例PropertyMessage.propertiesPropertyMessage.properties字符串能否从资源文件中获取?16运行17验证关联对象如果在验证一个对象时,让验证器同时也验证其关联对象的
5、约束,需要使用@Valid约束班级-学生18运行因为在Tstudent中使用@Valid验证关联对象,所以InvalidValue[]包含Tunit对象的错误信息19注册验证器事件监听器①HibernateValidator有两个内建Hibernate事件监听器。当一个PreInsertEvent或PreUpdateEvent发生时,监听器会验证该实体实例的所有约束,如有违反会抛出一个异常。②基本上,在Hibernate执行任何插入和更新前对象会被检查。这是激活验证过程的最便捷最简单的方法。当遇到约束违规时,事件会引发一个运行时异常InvalidStateException,该异
6、常包含一个描述每个错误的InvalidValue数组。在配置文件中注册事件监听器pre-insertpre-updateorg.hibernate.validator.event.ValidateEventListenerorg.hibernate.validator.event.ValidatePreInsertEventListenerorg.hibernate.validator.event.ValidatePreUpdateEventListener20示例在hibernate-cfg.xml配置如下:也可以通过编程方式注册监听器,使用Configuration类的set
7、Listener(事件名,监听类)方法来注册。21总结了解Hibernate验证器框架使用Hibernate验证器内建约束Hibernate验证器国际化资源包学会编写自定义验证器对关联对象进行约束验证22
此文档下载收益归作者所有