@@ -66,51 +66,56 @@ private <T> void extractChangeData(final List<PropertyChange<?>> propChanges, fi
6666 if (fieldFilter .test (field ))
6767 {
6868 final String fieldName = field .getName ();
69- Object value = ReflectionUtils .getField (field , target );
70-
71- if (isEntity (value ))
72- {
73- value = persistenceUnitUtil .getIdentifier (value );
74- }
75- else if (value instanceof Collection )
76- {
77- final Collection tmp = new LinkedList <>();
78- for (Object v : (Collection ) value )
79- {
80- if (isEntity (v ))
81- {
82- tmp .add (persistenceUnitUtil .getIdentifier (v ));
83- }
84- else
85- {
86- tmp .add (v );
87- }
88- }
89- value = tmp ;
90- }
91- else if (value instanceof Map )
92- {
93- final Map tmp = new LinkedHashMap <>();
94- Set <Entry > set = ((Map ) value ).entrySet ();
95- for (Entry e : set )
96- {
97- if (isEntity (e .getValue ()))
98- {
99- tmp .put (e .getKey (), (persistenceUnitUtil .getIdentifier (e .getValue ())));
100- }
101- else
102- {
103- tmp .put (e .getKey (), e .getValue ());
104- }
105- }
106- value = tmp ;
107- }
108-
69+ final Object value = getAuditValue (ReflectionUtils .getField (field , target ));
10970 propChanges .add (new PropertyChange (fieldName , field .getType (), deleted ? value : null , deleted ? null : value ));
11071 }
11172 }
11273
113- private boolean isEntity (Object value )
74+ @ SuppressWarnings ({ "unchecked" , "rawtypes" })
75+ public Object getAuditValue (Object value )
76+ {
77+ if (isEntity (value ))
78+ {
79+ value = persistenceUnitUtil .getIdentifier (value );
80+ }
81+ else if (value instanceof Collection )
82+ {
83+ final Collection tmp = new LinkedList <>();
84+ for (Object v : (Collection ) value )
85+ {
86+ if (isEntity (v ))
87+ {
88+ tmp .add (persistenceUnitUtil .getIdentifier (v ));
89+ }
90+ else
91+ {
92+ tmp .add (v );
93+ }
94+ }
95+ return tmp ;
96+ }
97+ else if (value instanceof Map )
98+ {
99+ final Map tmp = new LinkedHashMap <>();
100+ Set <Entry > set = ((Map ) value ).entrySet ();
101+ for (Entry e : set )
102+ {
103+ if (isEntity (e .getValue ()))
104+ {
105+ tmp .put (e .getKey (), (persistenceUnitUtil .getIdentifier (e .getValue ())));
106+ }
107+ else
108+ {
109+ tmp .put (e .getKey (), e .getValue ());
110+ }
111+ }
112+ return tmp ;
113+ }
114+
115+ return value ;
116+ }
117+
118+ public boolean isEntity (Object value )
114119 {
115120 if (value != null )
116121 {
0 commit comments