Skip to content

Commit 657e9ca

Browse files
committed
Polishing.
Changed default behaviour to an empty name for embedded entities. This allows to use embedded entities for column tuples without special prefix. Original pull request #1149
1 parent b53e4e6 commit 657e9ca

File tree

2 files changed

+19
-11
lines changed

2 files changed

+19
-11
lines changed

spring-data-jdbc/src/test/java/org/springframework/data/jdbc/core/PersistentPropertyPathExtensionUnitTests.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ void getTableAlias() {
127127
softly.assertThat(extPath("secondList.third.value").getTableAlias()).isEqualTo(quoted("secondList_third"));
128128
softly.assertThat(extPath("secondList").getTableAlias()).isEqualTo(quoted("secondList"));
129129
softly.assertThat(extPath("second2.third").getTableAlias()).isEqualTo(quoted("secthird"));
130-
softly.assertThat(extPath("second3.third").getTableAlias()).isEqualTo(quoted("second3third"));
130+
softly.assertThat(extPath("second3.third").getTableAlias()).isEqualTo(quoted("third"));
131131
});
132132
}
133133

spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/PersistentPropertyPathExtension.java

+18-10
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
*/
1616
package org.springframework.data.relational.core.mapping;
1717

18+
import java.util.Objects;
19+
1820
import org.springframework.data.mapping.PersistentProperty;
1921
import org.springframework.data.mapping.PersistentPropertyPath;
2022
import org.springframework.data.mapping.context.MappingContext;
@@ -23,8 +25,7 @@
2325
import org.springframework.data.util.Lazy;
2426
import org.springframework.lang.Nullable;
2527
import org.springframework.util.Assert;
26-
27-
import java.util.Objects;
28+
import org.springframework.util.StringUtils;
2829

2930
/**
3031
* A wrapper around a {@link org.springframework.data.mapping.PersistentPropertyPath} for making common operations
@@ -385,28 +386,34 @@ private PersistentPropertyPathExtension getTableOwningAncestor() {
385386
return isEntity() && !isEmbedded() ? this : getParentPath().getTableOwningAncestor();
386387
}
387388

389+
@Nullable
388390
private SqlIdentifier assembleTableAlias() {
389391

390392
Assert.state(path != null, "Path is null");
391393

392394
RelationalPersistentProperty leafProperty = path.getRequiredLeafProperty();
393395
String prefix;
394-
if (isEmbedded() && (leafProperty.getEmbeddedPrefix() == null || !leafProperty.getEmbeddedPrefix().isEmpty())) {
396+
if (isEmbedded()) {
395397
prefix = leafProperty.getEmbeddedPrefix();
398+
396399
} else {
397400
prefix = leafProperty.getName();
398401
}
399402

400403
if (path.getLength() == 1) {
401404
Assert.notNull(prefix, "Prefix mus not be null.");
402-
return SqlIdentifier.quoted(prefix);
405+
return StringUtils.hasText(prefix) ? SqlIdentifier.quoted(prefix) : null;
403406
}
404407

405408
PersistentPropertyPathExtension parentPath = getParentPath();
406409
SqlIdentifier sqlIdentifier = parentPath.assembleTableAlias();
407410

408-
return parentPath.isEmbedded() ? sqlIdentifier.transform(name -> name.concat(prefix))
409-
: sqlIdentifier.transform(name -> name + "_" + prefix);
411+
if (sqlIdentifier != null) {
412+
413+
return parentPath.isEmbedded() ? sqlIdentifier.transform(name -> name.concat(prefix))
414+
: sqlIdentifier.transform(name -> name + "_" + prefix);
415+
}
416+
return SqlIdentifier.quoted(prefix);
410417

411418
}
412419

@@ -444,11 +451,12 @@ private SqlIdentifier prefixWithTableAlias(SqlIdentifier columnName) {
444451
@Override
445452
public boolean equals(Object o) {
446453

447-
if (this == o) return true;
448-
if (o == null || getClass() != o.getClass()) return false;
454+
if (this == o)
455+
return true;
456+
if (o == null || getClass() != o.getClass())
457+
return false;
449458
PersistentPropertyPathExtension that = (PersistentPropertyPathExtension) o;
450-
return entity.equals(that.entity) &&
451-
Objects.equals(path, that.path);
459+
return entity.equals(that.entity) && Objects.equals(path, that.path);
452460
}
453461

454462
@Override

0 commit comments

Comments
 (0)