题
我正在使用JSF 2,MyFaces,Hibernate-validator-4.1.0.final.jar。
我使用Hibernate-validator来验证以形式输入的值。
public class Client {
@Persistent
@Pattern(regexp = "|.+@.+\\.[a-z]+", message = "Email format is invalid.")
private String email;
//getter
}
我正在开发散装模块,在该模块中解析CSV数据并创建数据库记录。
...
try{
Client cl=new Client();
cl.setEmail("from_csv_data");
}catch( //validation failed
如何在此处重复使用相同的验证器?
set> condraintArtionation = validator.validate(nc);
引发此例外
SEVERE: Received 'java.lang.NoSuchMethodError' when invoking action listener '#{clientBean.bulkUpload}' for component 'j_idt86'
2011年1月28日8:35:39 AM Javax.faces.event.MethodeXpressionActionListener处理
严重:java.lang.nosuchmethoderror:javax.persistence.persistence.getpersistenceutil()ljavax/persistence/persistenceutil; atorg.hibernate.validator.engine.Resolver.jpatraversablereSolver.isreach(jpatraversablereresolver.java:62)
我尝试了这个解决方案 关联
我有Hibernate-JPA-2.0-API-1.0.0.0.final.jar,Hibernate-Validator-4.1.0.final.jar.jar
我还需要其他罐子来制作这项工作吗?
解决方案
您可以手动调用验证器:
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
Client client = new Client();
Set<ConstraintViolation<Client>> constraintViolations = validator.validate(client);
其他提示
您很可能在类路径上有另一个不完整的JPA 2 JAR文件。不幸的是,该罐子的一些不完整版本在某个阶段发布(例如Toplink)。检查您的类路径中的任何包含JPA类的JAR。也可以看看 https://forum.hibernate.org/viewtopic.php?f=9&t=999855
不隶属于 StackOverflow