seam 中应用自定义hibernate validator
程序员文章站
2023-12-21 12:57:58
...
关于自定义hibernate validation的方法网上一大把,就不多写了,给一个地址吧:http://xiaoyou8519.blog.163.com/blog/static/14015728620110614059638/
下面是我用到的一个自定义的验证:主要做的是验证一下卡号是不是唯一的
代码:
实现:
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]
下面是我用到的一个自定义的验证:主要做的是验证一下卡号是不是唯一的
代码:
@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]
推荐阅读
-
seam 中应用自定义hibernate validator
-
浅析java程序中hibernate的应用总结
-
详解iOS应用中自定义UIBarButtonItem导航按钮的创建方法
-
全面解析iOS应用中自定义UITableViewCell的方法
-
详解iOS应用中自定义UIBarButtonItem导航按钮的创建方法
-
iOS应用中UITableView左滑自定义选项及批量删除的实现
-
iOS多线程应用开发中自定义NSOperation类的实例解析
-
iOS应用中UITableView左滑自定义选项及批量删除的实现
-
实例解析iOS开发中系统音效以及自定义音效的应用
-
Hibernate validator使用以及自定义校验器注解