27
27
28
28
import org .springframework .beans .factory .annotation .Autowired ;
29
29
import org .springframework .data .mongodb .core .MongoOperations ;
30
+ import org .springframework .data .mongodb .core .mapping .Document ;
30
31
import org .springframework .data .mongodb .core .mapping .event .AbstractMongoEventListener ;
31
32
import org .springframework .data .mongodb .core .mapping .event .AfterConvertEvent ;
32
33
import org .springframework .data .mongodb .core .mapping .event .AfterLoadEvent ;
@@ -50,50 +51,62 @@ public class RelMongoProcessor extends AbstractMongoEventListener<Object> {
50
51
51
52
@ Override
52
53
public void onAfterLoad (AfterLoadEvent <Object > event ) {
53
- PersistentPropertyLoadingCallback callback = new PersistentPropertyLoadingCallback (event .getSource ());
54
- ReflectionUtils .doWithFields (event .getType (), callback );
55
- List <LoadableObjectsMetadata > loadableObjects = callback .getLoadableObjects ();
56
- if (!loadableObjects .isEmpty ()) {
57
- PersistentRelationResolver .resolveOnLoading (mongoOperations , loadableObjects , event .getSource ());
54
+ if (event .getType ().isAnnotationPresent (Document .class )) {
55
+ PersistentPropertyLoadingCallback callback = new PersistentPropertyLoadingCallback (event .getSource ());
56
+ ReflectionUtils .doWithFields (event .getType (), callback );
57
+ List <LoadableObjectsMetadata > loadableObjects = callback .getLoadableObjects ();
58
+ if (!loadableObjects .isEmpty ()) {
59
+ PersistentRelationResolver .resolveOnLoading (mongoOperations , loadableObjects , event .getSource ());
60
+ }
58
61
}
59
62
super .onAfterLoad (event );
60
63
}
61
64
62
65
@ Override
63
66
public void onBeforeSave (BeforeSaveEvent <Object > event ) {
64
- PersistentPropertySavingCallback callback = new PersistentPropertySavingCallback (event .getDocument (), event .getCollectionName (), mongoOperations );
65
- ReflectionUtils .doWithFields (event .getSource ().getClass (), callback );
67
+ if (event .getSource ().getClass ().isAnnotationPresent (Document .class )) {
68
+ PersistentPropertySavingCallback callback = new PersistentPropertySavingCallback (event .getDocument (), event .getCollectionName (), mongoOperations );
69
+ ReflectionUtils .doWithFields (event .getSource ().getClass (), callback );
70
+ }
66
71
super .onBeforeSave (event );
67
72
}
68
73
69
74
@ Override
70
75
public void onBeforeConvert (BeforeConvertEvent <Object > event ) {
71
- PersistentPropertyConvertingCallback callback = new PersistentPropertyConvertingCallback (event .getSource ());
72
- ReflectionUtils .doWithFields (event .getSource ().getClass (), callback );
76
+ if (event .getSource ().getClass ().isAnnotationPresent (Document .class )) {
77
+ PersistentPropertyConvertingCallback callback = new PersistentPropertyConvertingCallback (event .getSource ());
78
+ ReflectionUtils .doWithFields (event .getSource ().getClass (), callback );
79
+ }
73
80
super .onBeforeConvert (event );
74
81
}
75
82
76
83
@ Override
77
84
public void onAfterConvert (AfterConvertEvent <Object > event ) {
78
- PersistentPropertyPostLoadingCallback callback = new PersistentPropertyPostLoadingCallback (event .getSource (), event .getDocument (), mongoOperations );
79
- ReflectionUtils .doWithFields (event .getSource ().getClass (), callback );
85
+ if (event .getSource ().getClass ().isAnnotationPresent (Document .class )) {
86
+ PersistentPropertyPostLoadingCallback callback = new PersistentPropertyPostLoadingCallback (event .getSource (), event .getDocument (), mongoOperations );
87
+ ReflectionUtils .doWithFields (event .getSource ().getClass (), callback );
88
+ }
80
89
super .onAfterConvert (event );
81
90
}
82
91
83
92
@ Override
84
93
public void onAfterSave (AfterSaveEvent <Object > event ) {
85
94
super .onAfterSave (event );
86
- PersistentPropertyPostSavingCallback callback = new PersistentPropertyPostSavingCallback (event .getSource (), mongoOperations );
87
- ReflectionUtils .doWithFields (event .getSource ().getClass (), callback );
95
+ if (event .getSource ().getClass ().isAnnotationPresent (Document .class )) {
96
+ PersistentPropertyPostSavingCallback callback = new PersistentPropertyPostSavingCallback (event .getSource (), mongoOperations );
97
+ ReflectionUtils .doWithFields (event .getSource ().getClass (), callback );
98
+ }
88
99
89
100
}
90
101
91
102
@ Override
92
103
public void onBeforeDelete (BeforeDeleteEvent <Object > event ) {
93
104
super .onBeforeDelete (event );
94
- PersistentPropertyCascadingRemoveCallback callback = new PersistentPropertyCascadingRemoveCallback (event .getDocument (), mongoOperations ,
95
- event .getType ());
96
- callback .doProcessing ();
105
+ if (event .getType ().isAnnotationPresent (Document .class )) {
106
+ PersistentPropertyCascadingRemoveCallback callback = new PersistentPropertyCascadingRemoveCallback (event .getDocument (), mongoOperations ,
107
+ event .getType ());
108
+ callback .doProcessing ();
109
+ }
97
110
}
98
111
99
112
}
0 commit comments