




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Hibernate ORM 最佳实践第11章 Hibernate 验证器,2,回顾,使用注释定义对象关系映射 使用Hibernate Annotations建立一个项目 利用注释进行各种对象关系映射 利用注释定义命名查询,3,目标,了解Hibernate验证器框架 使用Hibernate验证器内建约束 Hibernate验证器国际化资源包 学会编写自定义验证器 对关联对象进行约束验证,4,创建Hibernate验证器,下载资源包:,Hibernate验证器提供在代码中使用注释来定义各种约束条件 使用内建约束(Hibernate Validator本身定义) 使用自定义约束,5,示例,内建约束L
2、ength,检查字符串长度是否符合范围,内建约束NotNull,检查值是否非空,6,运行,保存约束没通过返回的具体信息,产生异常,不满足约束条件,7,结果,修改上述程序,将company的属性设置不为null,情况怎样?,8,结果,修改name的属性符合约束条件,9,内建约束,10,使用自定义约束,实现自己的约束:约束名称+约束实现类,使用约束描述符,interface定义约束名称,ValidatorClass(自定义验证器实现类),如:WebAddress(prefix=“http:/www.”),自定义验证器实现类必须实现接口: Validator,如果该验证器用来检查属性值,还要实现:
3、PropertyConstraint接口,实现方法isValid(),定义满足约束的条件 initialize()初试化约束属性,约束名称,约束属性,11,示例,自定义标记约束,要求Company的属性url以http:/www.开头,描述自定义验证器类,约束目标是属性,且在运行时读取使用,定义注解WebAddress,包含属性prefix、message,WebAddress.java,message是用于描述约束违规的默认字符串, 它是强制要求的。,import static java.lang.annotation.ElementType.FIELD,Target(FIELD),12,自
4、定义验证器代码,WebAddressValidator.java,实现接口,注解约束符的属性初始化WebAddress(prefix=“http:/www.”),约束条件的设置,13,运行,自定义约束,14,结果,15,错误信息国际化,验证器能够根据不同环境返回符合国际化错误信息,利用java.util.ResourceBundle的子类即 ListResourceBundle或PropertyResourceBundle资源绑定,16,示例,PropertyMperties,PropertyMperties,字符串能否从资源文件中获取?,17,运行,1
5、8,验证关联对象,如果在验证一个对象时,让验证器同时也验证其关联对象的约束,需要使用Valid约束,班级-学生,19,运行,因为在Tstudent中使用 Valid验证关联对象,所以 InvalidValue包含Tunit对象 的错误信息,20,注册验证器事件监听器,Hibernate Validator有两个内建Hibernate事件监听器。当一个PreInsertEvent或PreUpdateEvent发生时,监听器会验证该实体实例的所有约束,如有违反会 抛出一个异常。 基本上,在Hibernate执行任何插入和更新前对象会被检查。这是激活验证过程 的最便捷最简单的方法。当遇到约束违规时,
6、事件会引发一个运行时异常 InvalidStateException,该异常包含一个描述每个错误的InvalidValue数组。,在配置文件中注册事件监听器,pre-insert,pre-update,org.hibernate.validator.event.ValidateEventListener,org.hibernate.validator.event.ValidatePreInsertEventListener,org.hibernate.validator.event.ValidatePreUpdateEventListener,21,示例,在hibernate-cfg.xml配置如下:,也可以通过编程方式注册监听器,使用Configuration类的setListener(事件
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025工厂员工安全培训考试试题附完整答案(夺冠)
- 2024-2025企业员工岗前安全培训考试试题黄金题型
- 2025新员工入职安全培训考试试题A卷附答案
- 2024-2025员工三级安全培训考试试题(1套)
- 2024年食品质检员考试策略及试题答案
- 2025公司管理人员安全培训考试试题附参考答案【基础题】
- 汽车链条与皮带更换技巧试题及答案
- 25年公司主要负责人安全培训考试试题附完整答案【网校专用】
- 2025年新进厂职工安全培训考试试题答案a4版
- 2025公司级员工安全培训考试试题答案真题汇编
- GB/T 467-1997阴极铜
- 基坑工程土方开挖支护与降水监理实施细则
- 江苏徐州市深地科学与工程云龙湖实验室社会招考聘用9人模拟试卷【附答案解析】
- 土方回填施工记录表
- 植物根茎叶课件
- 反生产行为讲稿
- 施工现场消防安全技术交底
- 冀教版二年级语文下册看图写话专项加深练习题含答案
- 焊接工艺评定及焊接工艺技术评定管理标准
- 洗衣房各岗位工作流程
- 基于SWOT分析的义乌市现代物流业发展研究
评论
0/150
提交评论