Skip to content

Commit c9d5aff

Browse files
author
alex-semenyuk
committed
Added simple CascadeSave email for User
1 parent a3e8f9f commit c9d5aff

File tree

4 files changed

+28
-4
lines changed

4 files changed

+28
-4
lines changed

spring-data-mongodb/src/main/java/org/baeldung/config/MongoConfig.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import org.baeldung.converter.UserWriterConverter;
77
import org.baeldung.event.CascadeSaveMongoEventListener;
8+
import org.baeldung.event.UserCascadeSaveMongoEventListener;
89
import org.springframework.context.annotation.Bean;
910
import org.springframework.context.annotation.Configuration;
1011
import org.springframework.data.mongodb.config.AbstractMongoConfiguration;
@@ -36,6 +37,11 @@ public String getMappingBasePackage() {
3637
return "org.baeldung";
3738
}
3839

40+
@Bean
41+
public UserCascadeSaveMongoEventListener userCascadingMongoEventListener() {
42+
return new UserCascadeSaveMongoEventListener();
43+
}
44+
3945
@Bean
4046
public CascadeSaveMongoEventListener cascadingMongoEventListener() {
4147
return new CascadeSaveMongoEventListener();

spring-data-mongodb/src/main/java/org/baeldung/event/CascadeCallback.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@
88
import org.springframework.util.ReflectionUtils;
99

1010
public class CascadeCallback implements ReflectionUtils.FieldCallback {
11-
11+
1212
private Object source;
1313
private MongoOperations mongoOperations;
14-
14+
1515
public CascadeCallback(final Object source, final MongoOperations mongoOperations) {
1616
this.source = source;
1717
this.setMongoOperations(mongoOperations);

spring-data-mongodb/src/main/java/org/baeldung/event/CascadeSaveMongoEventListener.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66
import org.springframework.util.ReflectionUtils;
77

88
public class CascadeSaveMongoEventListener extends AbstractMongoEventListener<Object> {
9-
9+
1010
@Autowired
1111
private MongoOperations mongoOperations;
12-
12+
1313
@Override
1414
public void onBeforeConvert(final Object source) {
1515
ReflectionUtils.doWithFields(source.getClass(), new CascadeCallback(source, mongoOperations));
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package org.baeldung.event;
2+
3+
import org.baeldung.model.User;
4+
import org.springframework.beans.factory.annotation.Autowired;
5+
import org.springframework.data.mongodb.core.MongoOperations;
6+
import org.springframework.data.mongodb.core.mapping.event.AbstractMongoEventListener;
7+
8+
public class UserCascadeSaveMongoEventListener extends AbstractMongoEventListener<Object> {
9+
@Autowired
10+
private MongoOperations mongoOperations;
11+
12+
@Override
13+
public void onBeforeConvert(final Object source) {
14+
if (source instanceof User && ((User) source).getEmailAddress() != null) {
15+
mongoOperations.save(((User) source).getEmailAddress());
16+
}
17+
}
18+
}

0 commit comments

Comments
 (0)