| The underlying changes I have made focus on adapting MultipleIdMapper to be able to decide between two different IdMapper implementations for each injected property. At metadata processing time when we're inspecting the identifier for an entity, we determine whether if an id-class is at play and if so, check each property's data type in the id-class with that of the mapping on the entity-type. If the data type is the same, implying that the id-class also references the associated entity-type, we simply use a SingleIdMapper like we always have. But if we find the data types differ, implying the id-class references the entity-type identifier, we use the new VirtualEntitySingleIdMapper implementation. Matthew Morrissette, I'll push my tomorrow likely tomorrow after I give it one last polish, but if you could take a moment and review it and let me know if you see any issues, I'd be much appreciative. The goal is to try and get this into the next 5.2 and 5.3 releases. |