diff --git a/src/main/java/org/springframework/data/jdbc/core/DefaultDataAccessStrategy.java b/src/main/java/org/springframework/data/jdbc/core/DefaultDataAccessStrategy.java index 5c13619fc..9cba04782 100644 --- a/src/main/java/org/springframework/data/jdbc/core/DefaultDataAccessStrategy.java +++ b/src/main/java/org/springframework/data/jdbc/core/DefaultDataAccessStrategy.java @@ -149,7 +149,7 @@ public class DefaultDataAccessStrategy implements DataAccessStrategy { } @Override - public void deleteAll(PropertyPath propertyPath) { + public void deleteAll(PropertyPath propertyPath) { operations.getJdbcOperations().update(sql(propertyPath.getOwningType().getType()).createDeleteAllSql(propertyPath)); } @@ -192,17 +192,17 @@ public class DefaultDataAccessStrategy implements DataAccessStrategy { return operations.query(findAllInListSql, parameter, getEntityRowMapper(domainType)); } + @SuppressWarnings("unchecked") @Override - public Iterable findAllByProperty(Object rootId, JdbcPersistentProperty property) { + public Iterable findAllByProperty(Object rootId, JdbcPersistentProperty property) { Class actualType = property.getActualType(); - boolean isMap = property.getTypeInformation().isMap(); String findAllByProperty = sql(actualType).getFindAllByProperty(property.getReverseColumnName(), property.getKeyColumn()); MapSqlParameterSource parameter = new MapSqlParameterSource(property.getReverseColumnName(), rootId); - return operations.query(findAllByProperty, parameter, isMap // + return (Iterable)operations.query(findAllByProperty, parameter, property.isQualified() // ? getMapEntityRowMapper(property) // : getEntityRowMapper(actualType)); } diff --git a/src/main/java/org/springframework/data/jdbc/core/conversion/JdbcEntityWriter.java b/src/main/java/org/springframework/data/jdbc/core/conversion/JdbcEntityWriter.java index 8115652a0..478ce68b3 100644 --- a/src/main/java/org/springframework/data/jdbc/core/conversion/JdbcEntityWriter.java +++ b/src/main/java/org/springframework/data/jdbc/core/conversion/JdbcEntityWriter.java @@ -110,7 +110,7 @@ public class JdbcEntityWriter extends JdbcEntityWriterSupport { private void insertReferencedEntities(PropertyAndValue propertyAndValue, AggregateChange aggregateChange, DbAction dependingOn) { Insert insert; - if (propertyAndValue.property.isMap()) { + if (propertyAndValue.property.isQualified()) { Entry valueAsEntry = (Entry) propertyAndValue.value; insert = DbAction.insert(valueAsEntry.getValue(), dependingOn); diff --git a/src/main/java/org/springframework/data/jdbc/mapping/model/BasicJdbcPersistentProperty.java b/src/main/java/org/springframework/data/jdbc/mapping/model/BasicJdbcPersistentProperty.java index ea4c31b0c..e092f9313 100644 --- a/src/main/java/org/springframework/data/jdbc/mapping/model/BasicJdbcPersistentProperty.java +++ b/src/main/java/org/springframework/data/jdbc/mapping/model/BasicJdbcPersistentProperty.java @@ -109,7 +109,12 @@ public class BasicJdbcPersistentProperty extends AnnotationBasedPersistentProper @Override public String getKeyColumn() { - return isMap() ? context.getNamingStrategy().getKeyColumn(this) : null; + return isQualified() ? context.getNamingStrategy().getKeyColumn(this) : null; + } + + @Override + public boolean isQualified() { + return isMap(); } private Class columnTypeIfEntity(Class type) { diff --git a/src/main/java/org/springframework/data/jdbc/mapping/model/JdbcPersistentProperty.java b/src/main/java/org/springframework/data/jdbc/mapping/model/JdbcPersistentProperty.java index 3d97da72c..6d1adcb73 100644 --- a/src/main/java/org/springframework/data/jdbc/mapping/model/JdbcPersistentProperty.java +++ b/src/main/java/org/springframework/data/jdbc/mapping/model/JdbcPersistentProperty.java @@ -46,4 +46,9 @@ public interface JdbcPersistentProperty extends PersistentProperty