2012-12-12 3 views
1

Почему дозер не может сопоставить переменную Source Class типа Number с переменной класса назначения того же типа?Бульдозер: сопоставление номеров к номерам не поддерживается

Получение следующего исключения:

java.lang.IllegalArgumentException: argument type mismatch 

Some more Info: 
Dest parent class: XXX 
Source field name: totalAccounts 
Source field type: class java.lang.Integer 
Source field value: 8 
Dest parent class: XXX 
Dest field name: totalAccounts 
Dest field type: java.lang.Number 

Здесь, как источник и классы назначения относятся к такому же типу класс говорят Transactions.Both имеет поле Номера, но в то время как отображение из источника в класс назначения он бросает такое исключение. .

Я не понимаю, почему это должно быть «несоответствие аргументов» с тем же типом данных?

ответ

1

Согласно вашему сообщению о дозаторе, это не тот же тип. Поле источника - Integer, пункт назначения - Number.

The Dozer documentation не упоминает такой встроенный конвертер (по крайней мере, если я правильно прочитал), поэтому вам может потребоваться реализовать собственную реализацию org.dozer.CustomConverter. Поскольку вы говорите, что это тот же класс и одно и то же поле, я в убытке, но почему-то Integer, а другой - Number (по крайней мере, без дополнительной информации о классе и файле сопоставления). Лучше дважды проверьте как класс, так и файл сопоставления, и попробуйте CustomConverter в качестве обходного пути.

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