Featured post
Dozer: Hibernate PersistentMap is not mapped to java.util.HashMap -
i have hibernate annotated entity field:
@onetomany(mappedby="templateinstance", fetch = fetchtype.eager) @mapkey(name = "attributename") private map<string, component> components;
hibernate makes persistentmap out of this. want dozer map object such field:
private map<string, componentdto> components;
after having lazyinitializationexceptions , debugging, found out, it´s not problem of closed hibernate session, dozer tries not map hashmap persistentmap! , therefore when dozer accesses target map persistentmap throws exception, because has no session of course.
so, thought intented behaviour of dozer map hashmap. question: doing wrong or dozer , how can dozer map persistentmap normal java standard map?
i had no problems when using list before. has else used dozer mapping hibernate persistentmap?
regards, konsumierer
i found solution myself. components field in dto has this:
hashmap<string, component> components = new hashmap<string, component>;
only way can prevent dozer using persistentmap target object.
and other important thing use custom beanmappingbuilder holds map , looks that:
public class templateinstancemappingbuilder extends beanmappingbuilder { @override protected void configure() { mapping(templateinstance.class, templateinstancedto.class) .fields("components", "components", fieldsmappingoptions.hintb(componentdto.class)); } }
for further information problem, see dozer forums @ https://sourceforge.net/projects/dozer/forums/forum/452530/topic/4020856/index/page/1
- Get link
- X
- Other Apps
Comments
Post a Comment