将实体管理器传递给自定义验证器

时间:2014-07-17 08:08:12

标签: validation jpa

我想创建一个自定义验证器,当有继承时,它可以在许多表中使用唯一键。我需要将实体管理器传递给这个自定义验证器或验证器工厂如何做到这一点? 的修改 我正在使用带有jpa(Eclipse链接)和jsr 303的EJB(glassfish)。

1 个答案:

答案 0 :(得分:1)

正如JSR 330(DI)所述:

  

Bean验证提供的默认ConstraintValidatorFactory   provider实现使用了public的public no-arg构造函数   ConstraintValidator类。自定义ConstraintValidatorFactory可以   提供;例如,它可能受益于依赖注入控制   在约束实现中。依赖任何约束实现   on ConstraintValidatorFactory特定于实现的行为   (依赖注入,没有no-arg构造函数等)不是   被认为是便携式的,因此在走路之前应该非常小心   那道路。

因此,您可以创建ConstraintValidatorFactory或使用手动查找:

Context ctx = new InitialContext();
MyClass myClass = (MyClass) ctx.lookup("urlTo" + MyClass.class.getName())