2012-11-19 21 views
4

我具有包含JAXB生成的类执行以下操作:没有验证器可用于类型中找到:java.lang.Short中

@Pattern(regexp = "[0-9]", message = "Message details here") 
protected Short msgVal; 

当运行JUnit测试经由休眠来验证类的一个实例,我得到:

javax.validation.UnexpectedTypeException: No validator could be found for type: java.lang.Short

如果我注释掉@Pattern约束,则JUnitTest运行良好。

是否可以对短值@Pattern限制?如果是这样,我错过了什么?

Regards, PM。

回答

6

@Pattern是字符串,则无法将其应用到短。相反,您可以使用@Max和/或@Min。 @Digits可能会更好。

@Digits(integer=1, fraction=0) 
protected Short msgVal; 
+0

感谢您的快速回复。我自己也是这么想的。然而,JAXB生成的类由下列XSD自动生成java.lang.Short中字段的@Pattern注解: \t' \t \t \t' 注解是由Xjc JSR303注释插件(即krasa-jaxb-tools)放置的,我想知道问题是否出现在模式文件的或Xjc插件的代码本身?再次感谢,PM。 –

+0

它是插件工具中的一个错误。您可能想在此提出问题:http://code.google.com/p/krasa-jaxb-tools/issues/list – Perception

+0

您尝试过吗? Robertiano

0

no @Pattern注释只是将参数作为字符串。您可以使用@Digits(message="message here", integer=32767, fraction = 0)

+0

感谢您的快速回复。请参阅我对@ Robertiano的回答的评论。干杯,下午。 –

相关问题