Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
找不到类型为java.lang.Short的验证器_Java_Hibernate_Jaxb_Hibernate Validator - Fatal编程技术网

找不到类型为java.lang.Short的验证器

找不到类型为java.lang.Short的验证器,java,hibernate,jaxb,hibernate-validator,Java,Hibernate,Jaxb,Hibernate Validator,我有一个JAXB生成的类,包含以下内容: @Pattern(regexp = "[0-9]", message = "Message details here") protected Short msgVal; 当我通过Hibernate运行JUnit测试来验证该类的实例时,我得到: javax.validation.UnexpectedTypeException:找不到类型为java.lang.Short的验证器 如果我注释掉@Pattern约束,JUnitSet运行良好 是否可以对短值设置

我有一个JAXB生成的类,包含以下内容:

@Pattern(regexp = "[0-9]", message = "Message details here")
protected Short msgVal;
当我通过Hibernate运行JUnit测试来验证该类的实例时,我得到:

javax.validation.UnexpectedTypeException:找不到类型为java.lang.Short的验证器

如果我注释掉
@Pattern
约束,JUnitSet运行良好

是否可以对短值设置
@Pattern
约束?如果是,我错过了什么

问候,,
PM.

@模式用于字符串,不能应用于短字符。相反,您可以使用@Max和/或@Min.@数字,甚至更好

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

@Pattern
注释仅将参数作为字符串。您可以使用
@数字(message=“message here”,整数=32767,分数=0)

谢谢您的快速回复。我自己也以为是这样。然而,JAXB生成的类“java.lang.Short”字段的@Pattern注释是从以下XSD自动生成的:
注释是由一个Xjc JSR303注释插件(即krasa JAXB工具)放置的,我想知道问题是在模式文件中还是在Xjc插件的代码本身中?再次感谢,PM。这是插件工具中的一个错误。你可能想在这里提出一个问题:你试过了吗?对不起,你试过了吗我不允许更改模式(它是外部的,由其他组织使用)。在线查看
xs:unsignedByte
时,我认为
xs:pattern
xs:restriction
上允许使用base
xs:unsignedByte
。我将在krasa jaxb工具问题列表中记录一个问题,希望看到他们在那里说了什么。然而,将
xs:pattern
限制映射到
@pattern
之外的注释似乎很奇怪。这正常吗?通常由JSR303注释插件完成?感谢您的快速回复。请看我对@Robertiano回答的评论。干杯,下午。