Description
Hello,
I have class A, having a child classes Class B and Class C. Class C is also child for Class B. Which is cyclic relation but I avoided cyclic relation in code and want to map partial data of Class C under Class A and Partial data under Class B. I achieved this as follows with mapping using wildcard=false
<mapping map-id="classA">
<class-a>classA</class-a>
<class-b>ClassA</class-b>
<field>
<a>id</a>
<b>id</b>
</field>
<field map-id="classB">
<a>classb</a>
<b>classb</b>
</field>
<field map-id="classC">
<a>classc</a>
<b>classc</b>
</field>
</mapping>
<mapping map-id="classB">
<class-a>classB</class-a>
<class-b>ClassB</class-b>
<field>
<a>id</a>
<b>id</b>
</field>
<field map-id="classCAgain">
<a>classc</a>
<b>classc</b>
</field>
</mapping>
<mapping map-id="classC">
<class-a>classC</class-a>
<class-b>ClassC</class-b>
<field>
<a>id</a>
<b>id</b>
</field>
<field>
<a>partialA</a>
<b>partialA</b>
</field>
<field>
<a>partailA2</a>
<b>partialA2</b>
</field>
</mapping>
<mapping map-id="classCAgain">
<class-a>classC</class-a>
<class-b>ClassC</class-b>
<field>
<a>id</a>
<b>id</b>
</field>
<field>
<a>PartialB1</a>
<b>PartialB1</b>
</field>
<field>
<a>PartialB2</a>
<b>PartialB2</b>
</field>
</mapping>
It works fine if I have two different instances of Class C under A and B. But if I have same instance of Class C under A and B, MappedFieldsTracker just checks the object had code and declares as already mapped and I see the mapped data same under A and B which is not what i expect. The MappedFieldsTracker should also consider the map id and its mapped same object for same map id then only declare as processed otherwise it should process again and give the correct mapping based on the map id.
Raja