Skip to content

MappedFieldsTracker does not consider map-id #238

Closed
@raja-hm

Description

@raja-hm

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions