seam 中应用自定义hibernate validator

关于自定义hibernate validation的方法网上一大把,就不多写了,给一个地址吧:[url=http://xiaoyou8519.blog.163.com/blog/static/14015728620110614059638/]http://xiaoyou8519.blog.163.com/blog/static/14015728620110614059638/[/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]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值