关于自定义hibernate validation的方法网上一大把,就不多写了,给一个地址吧:
http://xiaoyou8519.blog.163.com/blog/static/14015728620110614059638/
下面是我用到的一个自定义的验证:主要做的是验证一下卡号是不是唯一的
代码:
@ValidatorClass(SameValidator.class)
@Target( {java.lang.annotation.ElementType.METHOD,java.lang.annotation.ElementType.FIELD } )
@Retention(java.lang.annotation.RetentionPolicy.RUNTIME)
@Documented
public @interface Same {
String message() default "已经存在,请换其它的试试!";
}
实现:
public class SameValidator implements Validator<Same>, PropertyConstraint,
Serializable {
private static final long serialVersionUID = -7858011546519554903L;
@SuppressWarnings("unchecked")
public void apply(Property property) {
if (!(property.getPersistentClass() instanceof SingleTableSubclass)
&& !(property.getValue() instanceof Collection)) {
// single table should not be forced to null
if (!property.isComposite()) {
Iterator<Column> iter = (Iterator<Column>) property
.getColumnIterator();
while (iter.hasNext()) {
iter.next().setNullable(false);
}
}
}
}
public void initialize(Same arg0) {
}
@SuppressWarnings("unchecked")
public boolean isValid(Object obj) {
if (obj == null) {
return false;
}
if (obj instanceof String) {
//添加时的验证逻辑
......
//编辑时的验证逻辑
......
}
return false;
}
}
Hibernate validation 是基于Hibernate事件模型的校验;通过测试发现,在对实体进行添加,编辑,删除的时候都进行了验证(文档中说删除不验证);具体的参考下面的连接:
[url=http://docs.jboss.org/hibernate/validator/4.2/reference/zh-CN/html/validator-checkconstraints.html]
http://docs.jboss.org/hibernate/validator/4.2/reference/zh-CN/html/validator-checkconstraints.html[/url]
分享到:
相关推荐
NULL 博文链接:https://kenter1643.iteye.com/blog/255159
该资源介绍了seam 整合hibernate和jsf
1.3. Seam 中的可点击列表:消息示例............................................................................................................................. 27 1.3.1. 理解代码.........................
SEAM 中文开发指南(官方)
Spring 2.5中文手册+hibernate手册+Seam_2.0_R中文手册三个手册合集希望对大家有用
eclipse3.4+tomcat6.0 希望可以帮助大家学习!!
个人收集整理的最全面seam文档 包括seam_reference(中、英) richfaces jsf a4j 以及seam一些其他主要功能
seam 中文文档 pdf 格式 JSF+EJB3.0快速开发框架Seam的中文版向导。。。
10.1.2 Hibernate应用程序中的事务 10.1.3 使用Java Persistence的事务 10.2 控制并发访问 10.2.1 理解数据库级并发 10.2.2 乐观并发控制 10.2.3 获得额外的隔离性保证 10.3 非事务数据...
Seam 中文开发指南 seam中文文档
JBOSS.SEAM.WEB应用开发 中文版 (美)MichaelYuan.
JBOSS SEAM组件中文手册 Seam_2.0_Reference_zh_CN
百度地图API在JBoss Seam中的研究与应用.pdf
seam框架需要的所有jar包,支持seam ui组件
seam下一代web开发框架
整理自jboss seam 中文站,压缩为chm格式,便于广大jboss seam爱好者阅读,所有版权归jboss seam中文站所有。
• 身份管理 - 用于管理Seam程序中所涉及的用户及角色的接口 • 权限验证 - 一个应用十分广泛的权限验证框架,支持用户角色、持久化和基于规则的权限设置,能够灵活地实现属于用户自己的安全设置 • 权限管理 - 一组...
seam in action 中文 english seam提供了快速开发 好长。netjava 新手学习的利器 中英文各一本,英文的好像不是很好
这是中文手册,Seam为持久化集成了JPA和Hibernate 3,为轻量化的异步性集成了EJB Timer Service和Quartz,为工作流集成了jBPM,为业务规则集成了JBoss规则,为电子邮件集成了Meldware Mail,为完整的文本搜索集成了...
JBoss_Seam--中文、Seam教程,中文Seam针对初学者很好的讲解及实例。希望对您有所收获。