2012-11-19 3 views
4

У меня есть JAXB генерируется класс, содержащего следующее:Нет валидатор не может быть найден для типа: java.lang.Short

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

При запуске теста JUnit для проверки экземпляра этого класса с помощью Hibernate, я получение:

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

Если я прокомментирую ограничение @Pattern, JUnitTest работает нормально.

Возможно ли иметь @Pattern ограничения на короткие значения? Если да, то что мне не хватает?

С уважением, PM.

ответ

6

@Pattern для струнных, вы не можете применить его к короткому. Вместо этого вы можете использовать @Max и/или @Min. @ Дигиты могут быть еще лучше.

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

Спасибо за быстрые ответы. Я думал, что это так. Тем не менее, JAXB генерируется класс @Pattern аннотаций java.lang.Short месторождения был создан автоматически из следующей XSD: \t '<хз: ограничение базы = "хз: unsignedByte"> \t \t <хз: Значение шаблона =» [0-9] "/> \t' Аннотации были добавлены плагином Xjc JSR303 annotations (а именно, krasa-jaxb-tools), и мне интересно, есть ли проблема в файл схемы или в самом коде модуля Xjc? Еще раз спасибо, премьер. –

+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

Спасибо за быстрый ответ. Пожалуйста, см. Мой комментарий на ответ @ Робертиано. Привет, ПМ. –

Смежные вопросы