You can also use Dozer mapping to convert POJOs to Map and exclude fields. For example, if we have two classes PojoA and PojoB having bidirectional relationships, we define a mapping like this
<mapping map-id="mapA" map-null="false"> <class-a>com.example.PojoA</class-a> <class-b>java.util.Map</class-b> <field> <a>fieldA</a> <b>this</b> </field> <field map-id="mapB"> <a>pojoB</a> <b>this</b> <b-hint>java.util.Map</b-hint> </field> </mapping> <mapping map-id="mapB" map-null="false"> <class-a>com.example.PojoB</class-a> <class-b>java.util.Map</class-b> <field-exclude> <a>pojoA</a> <b>this</b> </field-exclude> </mapping>
Then you define the bean parameter for the specified bulldozer file mapping file as a property.
<bean id="mapper" class="org.dozer.DozerBeanMapper"> <property name="mappingFiles"> <list> <value>dozerMapping.xml</value> </list> </property> </bean>
Then in the class where you serialize
public class TestClass { @Autowired DozerBeanMapper mapper; public Map<String,Object> serializeObject(PojoA pojoA) { return ((Map<String, Object>) mapper.map(pojoA, Map.class, "mapA")); } }
Bulldozer instruction manual is here .
Prasanna
source share