diff --git a/pom.xml b/pom.xml
index 98f945a6b2..0b2a3448c3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
org.springframework.data
spring-data-relational-parent
- 4.0.0-SNAPSHOT
+ 4.0.0-2011-embedded-SNAPSHOT
pom
Spring Data Relational Parent
diff --git a/spring-data-jdbc-distribution/pom.xml b/spring-data-jdbc-distribution/pom.xml
index b3c39e64c3..6e8f165747 100644
--- a/spring-data-jdbc-distribution/pom.xml
+++ b/spring-data-jdbc-distribution/pom.xml
@@ -14,7 +14,7 @@
org.springframework.data
spring-data-relational-parent
- 4.0.0-SNAPSHOT
+ 4.0.0-2011-embedded-SNAPSHOT
../pom.xml
diff --git a/spring-data-jdbc/pom.xml b/spring-data-jdbc/pom.xml
index e61fd64020..5a9c5eb8e9 100644
--- a/spring-data-jdbc/pom.xml
+++ b/spring-data-jdbc/pom.xml
@@ -6,7 +6,7 @@
4.0.0
spring-data-jdbc
- 4.0.0-SNAPSHOT
+ 4.0.0-2011-embedded-SNAPSHOT
Spring Data JDBC
Spring Data module for JDBC repositories.
@@ -15,7 +15,7 @@
org.springframework.data
spring-data-relational-parent
- 4.0.0-SNAPSHOT
+ 4.0.0-2011-embedded-SNAPSHOT
diff --git a/spring-data-r2dbc/pom.xml b/spring-data-r2dbc/pom.xml
index 64ff1ebcb3..3be76bc14d 100644
--- a/spring-data-r2dbc/pom.xml
+++ b/spring-data-r2dbc/pom.xml
@@ -6,7 +6,7 @@
4.0.0
spring-data-r2dbc
- 4.0.0-SNAPSHOT
+ 4.0.0-2011-embedded-SNAPSHOT
Spring Data R2DBC
Spring Data module for R2DBC
@@ -15,7 +15,7 @@
org.springframework.data
spring-data-relational-parent
- 4.0.0-SNAPSHOT
+ 4.0.0-2011-embedded-SNAPSHOT
diff --git a/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/convert/MappingR2dbcConverter.java b/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/convert/MappingR2dbcConverter.java
index 82f96e1e30..a0198bbee0 100644
--- a/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/convert/MappingR2dbcConverter.java
+++ b/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/convert/MappingR2dbcConverter.java
@@ -57,6 +57,7 @@
*
* @author Mark Paluch
* @author Oliver Drotbohm
+ * @author Jens Schauder
*/
public class MappingR2dbcConverter extends MappingRelationalConverter implements R2dbcConverter {
@@ -189,8 +190,17 @@ private void writeInternal(Object source, OutboundRow sink, Class> userClass)
writeProperties(sink, entity, propertyAccessor);
}
+ /**
+ * write the values of the properties of an {@link RelationalPersistentEntity} to an {@link OutboundRow}.
+ *
+ * @param sink must not be {@literal null}.
+ * @param entity must not be {@literal null}.
+ * @param accessor used for accessing the property values of {@literal entity}. May be {@literal null}. A
+ * {@literal null} value is used when this is an embedded {@literal null} entity, resulting in all its
+ * property values to be {@literal null} as well.
+ */
private void writeProperties(OutboundRow sink, RelationalPersistentEntity> entity,
- PersistentPropertyAccessor> accessor) {
+ @Nullable PersistentPropertyAccessor> accessor) {
for (RelationalPersistentProperty property : entity) {
@@ -200,11 +210,27 @@ private void writeProperties(OutboundRow sink, RelationalPersistentEntity> ent
Object value;
- if (property.isIdProperty()) {
- IdentifierAccessor identifierAccessor = entity.getIdentifierAccessor(accessor.getBean());
- value = identifierAccessor.getIdentifier();
+ if (accessor == null) {
+ value = null;
} else {
- value = accessor.getProperty(property);
+ if (property.isIdProperty()) {
+ IdentifierAccessor identifierAccessor = entity.getIdentifierAccessor(accessor.getBean());
+ value = identifierAccessor.getIdentifier();
+ } else {
+ value = accessor.getProperty(property);
+ }
+ }
+
+ if (property.isEmbedded()) {
+
+ RelationalPersistentEntity> embeddedEntity = getMappingContext().getRequiredPersistentEntity(property);
+ PersistentPropertyAccessor