2015-01-09 6 views
0

Я хочу сопоставить DTO (все строковых типов данных) в VO (содержит String, INT, логический, дата)бульдозер: String-To-Date Mapping поле Уровень для списка

StudentDTO

private StudentDetailDTO student; 

StudentDetailDTO:

private String sid; 
private String name; 
private String createDt; 
private String studentInd; 
private List<FeeReceiptDTO> feeDetails; 

FeeReceiptDTO:

private String semisterNum; 
private String feeAmount; 
private String paidOn; 

StudentDetailVO:

private int sid; 
private String name; 
private Date createDt; 
private boolean studentInd; 
private List<FeeReceiptVO> feeDetails; 

FeeReceiptVO:

private int semisterNum; 
private Double feeAmount; 
private Date paidOn; 

Я использую DOZZER для отображения мой DTO В. О. String-to-Date-DozzerMapping

DozzerMapper.xml

<?xml version="1.0" encoding="UTF-8"?> 
<mappings xmlns="http://dozer.sourceforge.net" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://dozer.sourceforge.net http://dozer.sourceforge.net/schema/beanmapping.xsd"> 

    <mapping date-format="MM/dd/yyyy HH:mm" map-null="true" map-empty-string="true" wildcard="true" type="one-way" > 
     <class-a>com.college.student.dto.StudentDTO</class-a> 
     <class-b>com.college.student.vo.StudentVO</class-b> 
     <field> 
      <a>student.sid</a> 
      <b>sid</b> 
     </field> 
     <field> 
      <a>student.name</a> 
      <b>name</b> 
     </field> 
     <field> 
      <a>student.createDt</a> 
      <b>createDt</b> 
     </field> 
     <field> 
      <a>student.studentInd</a> 
      <b>studentInd</b> 
     </field> 
     <field> 
      <a date-format="MM/dd/yyyy HH:mm">student.feeDetails</a> 
      <b>feeDetails</b> 
     </field> 

    </mapping> 
</mappings> 

Но, дата в feeDetails то есть, paidOn не может форматировать от строки к дате.

Я делаю что-то неправильно?

Нужно ли мне написать CustomStringToDateConvertor только для этого поля paidOn?

Error Log:

ERROR [org.dozer.MappingProcessor] (http-localhost-127.0.0.1-9090-1) Field mapping error --> 
    MapId: null 
    Type: null 
    Source parent class: com.college.student.dto.StudentDTO 
    Source field name: paidOn 
    Source field type: class java.lang.String 
    Source field value: 01/01/2015 01:01 
    Dest parent class: com.college.student.vo.StudentVO 
    Dest field name: paidOn 
    Dest field type: java.util.Date: org.dozer.converters.ConversionException: Unable to determine time in millis of source object 
    at org.dozer.converters.DateConverter.convert(DateConverter.java:81) [dozer-5.4.0.jar:] 
    at org.dozer.converters.PrimitiveOrWrapperConverter.convert(PrimitiveOrWrapperConverter.java:70) [dozer-5.4.0.jar:] 

Я пытался отладки и я обнаружил, что dateFormat на эту дату приходит в null в Дата конвертора из Dozzer org.dozer.converters.DateConvertor

Я определил date-format в field-level но он не выполняется для List объектов.

Есть ли другой способ сделать это?

+0

Является ли это заявление на уровне поля правильный ' student.feeDetails feeDetails '- будет делать этот формат даты, оба они используются.Список – 09Q71AO534

ответ

1

As, Dozer не в состоянии конвертировать String-To-Date - At Field Level Mapping for a List.

Я определил новое отображение для списка т.е., рассматривая его как Object

Я изменил DozerMapper.xml

<?xml version="1.0" encoding="UTF-8"?> 
<mappings xmlns="http://dozer.sourceforge.net" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://dozer.sourceforge.net http://dozer.sourceforge.net/schema/beanmapping.xsd"> 

<mapping date-format="MM/dd/yyyy HH:mm" map-null="true" map-empty-string="true" wildcard="true" type="one-way" > 
     <class-a>com.college.student.dto.FeeReceiptDTO</class-a> 
     <class-b>com.college.student.vo.FeeReceiptVO</class-b> 
</mapping> 

    <mapping date-format="MM/dd/yyyy HH:mm" map-null="true" map-empty-string="true" wildcard="true" type="one-way" > 
     <class-a>com.college.student.dto.StudentDTO</class-a> 
     <class-b>com.college.student.vo.StudentVO</class-b> 
     <field> 
      <a>student.sid</a> 
      <b>sid</b> 
     </field> 
     <field> 
      <a>student.name</a> 
      <b>name</b> 
     </field> 
     <field> 
      <a>student.createDt</a> 
      <b>createDt</b> 
     </field> 
     <field> 
      <a>student.studentInd</a> 
      <b>studentInd</b> 
     </field> 
     <field> 
      <a>student.feeDetails</a> 
      <b>feeDetails</b> 
     </field> 

    </mapping> 
</mappings> 

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

  • Нет связанных вопросов^_^