diff --git a/jdbc/basics/README.adoc b/jdbc/basics/README.adoc index 9d8f2e34..1ec4b6f2 100644 --- a/jdbc/basics/README.adoc +++ b/jdbc/basics/README.adoc @@ -14,9 +14,9 @@ This example demonstrate basic usage of JDBC based repositories. This example demonstrates various ways to bend what the standard mapping of Spring Data JDBC can do. -* `AggregateContext.idSetting()` registers an `ApplicationListener` to implement a custom id generation strategy for `LegoSet` and `Manual`. +* `AggregateConfiguration.idSetting()` registers an `ApplicationListener` to implement a custom id generation strategy for `LegoSet` and `Manual`. -* `AggregateContext.namingStrategy()` registers a custom `NamingStrategy` in order to map property and class names to database columns and tables. +* `AggregateConfiguration.namingStrategy()` registers a custom `NamingStrategy` in order to map property and class names to database columns and tables. * The `minimumAge` and `maximumAge` properties show a way to use types which don't have direct mapping to a SQL type, by marking them with `@Transient` and having converted properties for Spring Data JDBC to use. diff --git a/jdbc/basics/src/main/java/example/springdata/jdbc/basics/aggregate/AggregateConfiguration.java b/jdbc/basics/src/main/java/example/springdata/jdbc/basics/aggregate/AggregateConfiguration.java index 2639e339..f01eb668 100644 --- a/jdbc/basics/src/main/java/example/springdata/jdbc/basics/aggregate/AggregateConfiguration.java +++ b/jdbc/basics/src/main/java/example/springdata/jdbc/basics/aggregate/AggregateConfiguration.java @@ -38,6 +38,7 @@ import org.springframework.lang.Nullable; @Configuration @EnableJdbcRepositories public class AggregateConfiguration { + final AtomicInteger id = new AtomicInteger(0); @Bean @@ -67,13 +68,9 @@ public class AggregateConfiguration { @Bean public NamingStrategy namingStrategy() { - Map tableAliases = new HashMap(); - tableAliases.put("manual", "handbuch"); - Map columnAliases = new HashMap(); columnAliases.put("lego_set.int_maximum_age", "max_age"); columnAliases.put("lego_set.int_minimum_age", "min_age"); - columnAliases.put("handbuch.id", "handbuch_id"); Map reverseColumnAliases = new HashMap(); reverseColumnAliases.put("manual", "handbuch_id"); @@ -91,11 +88,6 @@ public class AggregateConfiguration { return columnAliases.computeIfAbsent(key, __ -> defaultName); } - @Override - public String getTableName(Class type) { - return tableAliases.computeIfAbsent(NamingStrategy.super.getTableName(type), key -> key); - } - @Override public String getReverseColumnName(JdbcPersistentProperty property) { return reverseColumnAliases.computeIfAbsent(property.getName(), diff --git a/jdbc/basics/src/main/java/example/springdata/jdbc/basics/aggregate/Manual.java b/jdbc/basics/src/main/java/example/springdata/jdbc/basics/aggregate/Manual.java index b99a3251..e594b505 100644 --- a/jdbc/basics/src/main/java/example/springdata/jdbc/basics/aggregate/Manual.java +++ b/jdbc/basics/src/main/java/example/springdata/jdbc/basics/aggregate/Manual.java @@ -18,6 +18,8 @@ package example.springdata.jdbc.basics.aggregate; import lombok.Data; import org.springframework.data.annotation.Id; +import org.springframework.data.jdbc.core.mapping.Column; +import org.springframework.data.jdbc.core.mapping.Table; /** * A manual instructing how to assemble a {@link LegoSet}. @@ -25,8 +27,10 @@ import org.springframework.data.annotation.Id; * @author Jens Schauder */ @Data +@Table("handbuch") public class Manual { + @Column("handbuch_id") private @Id Long id; private String author, text;