Ok I made some debugging and what a surprize when I discover that during persist method when the setter is called by reflection, the value argument become empty???
Seriously, there’s something I don’t understant. Then I try to wrap my the map arguments in an inner-method map and it’s work???
Working example:
public void setMyEnumsByProperty(final Map<MyEnum, Integer> myEnums) {
// if not wrapped, the map become empty after clear is called!!!!
Map<MyEnum, Integer> temp = new EnumMap<>(myEnums);
this.myEnumsByProperty.clear();
for (MyEnum myEnum : temp .keySet()) this.myEnumsByProperty.put(myEnum, temp .get(myEnum));
}