I am using Dozer to map my Hibernate entities. Everything works great, but when I turn my @Id properties in the entities into UUID's I get some strange errors.
I can't get my hands on it whats going wrong. I am using the the following configuration:
dozer-mapper.xml
<configuration>
<custom-converters>
<converter type="rw.gov.framework.util.LocalDateTimeConverter">
<class-a>java.time.LocalDateTime</class-a>
<class-b>java.time.LocalDateTime</class-b>
</converter>
<converter type="rw.gov.framework.util.LocalDateConverter">
<class-a>java.time.LocalDate</class-a>
<class-b>java.time.LocalDate</class-b>
</converter>
<converter type="rw.gov.framework.util.UUIDConverter">
<class-a>java.util.UUID</class-a>
<class-b>java.util.UUID</class-b>
</converter>
</custom-converters>
</configuration>
and dozer-context.xml
<bean class="org.dozer.spring.DozerBeanMapperFactoryBean" scope="singleton">
<property name="mappingFiles" value="classpath*:/dozer-mapper.xml" />
<property name="customFieldMapper" ref="dozerCustomFieldMapper"></property>
<property name="customConverters">
<list>
<bean class="rw.gov.framework.util.UUIDConverter" />
<bean class="rw.gov.framework.util.LocalDateTimeConverter" />
<bean class="rw.gov.framework.util.LocalDateConverter" />
</list>
</property>
<property name="eventListeners">
<list>
</list>
</property>
<property name="factories">
<map>
</map>
</property>
</bean>
<bean id="dozerCustomFieldMapper" class="rw.gov.framework.util.HibernateFieldMapper" />
</beans>
and here is the converter:
public class UUIDConverter extends DozerConverter<UUID, UUID> {
/**
* Instantiates a new local date converter.
*/
public UUIDConverter() {
super(UUID.class, UUID.class);
}
/* (non-Javadoc)
* @see org.dozer.DozerConverter#convertTo(java.lang.Object, java.lang.Object)
*/
@Override
public UUID convertTo(final UUID source,
final UUID destination) {
return source;
}
/* (non-Javadoc)
* @see org.dozer.DozerConverter#convertFrom(java.lang.Object, java.lang.Object)
*/
@Override
public UUID convertFrom(final UUID source,
final UUID destination) {
return source;
}
}
When mapping entities I get the exception :
detailMessage=java.lang.ClassCastException: rw.gov.ifmis.timeframe.domain.Period cannot be cast to java.util.UUID
cause=java.lang.ClassCastException: rw.gov.ifmis.timeframe.domain.Period cannot be cast to java.util.UUID
Any hints and suggestions would be appreciated
Chris