Browse Source

DATAJDBC-189 - Polishing.

Removed DefaultNamingStrategy since we don't have GA release breaking APIs is still ok.
Introduced an instance of NamingStrategy so we don't have to create a new class whereever we just want the default implementation.

JavaDoc.
Formatting

Original pull request: #36.
pull/50/merge
Jens Schauder 8 years ago
parent
commit
e477d763c1
  1. 30
      src/main/java/org/springframework/data/jdbc/mapping/model/DefaultNamingStrategy.java
  2. 10
      src/main/java/org/springframework/data/jdbc/mapping/model/DelimiterNamingStrategy.java
  3. 2
      src/main/java/org/springframework/data/jdbc/mapping/model/JdbcMappingContext.java
  4. 29
      src/main/java/org/springframework/data/jdbc/mapping/model/NamingStrategy.java
  5. 5
      src/main/java/org/springframework/data/jdbc/repository/config/JdbcConfiguration.java
  6. 4
      src/test/java/org/springframework/data/jdbc/core/DefaultDataAccessStrategyUnitTests.java
  7. 4
      src/test/java/org/springframework/data/jdbc/core/DefaultJdbcInterpreterUnitTests.java
  8. 71
      src/test/java/org/springframework/data/jdbc/core/EntityRowMapperUnitTests.java
  9. 16
      src/test/java/org/springframework/data/jdbc/core/SqlGeneratorContextBasedNamingStrategyUnitTests.java
  10. 5
      src/test/java/org/springframework/data/jdbc/core/SqlGeneratorFixedNamingStrategyUnitTests.java
  11. 5
      src/test/java/org/springframework/data/jdbc/core/SqlGeneratorUnitTests.java
  12. 5
      src/test/java/org/springframework/data/jdbc/mapping/model/BasicJdbcPersistentEntityInformationUnitTests.java
  13. 12
      src/test/java/org/springframework/data/jdbc/mapping/model/JdbcMappingContextUnitTests.java
  14. 5
      src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryIdGenerationIntegrationTests.java
  15. 5
      src/test/java/org/springframework/data/jdbc/testing/TestConfiguration.java

30
src/main/java/org/springframework/data/jdbc/mapping/model/DefaultNamingStrategy.java

@ -1,30 +0,0 @@
/*
* Copyright 2017-2018 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.data.jdbc.mapping.model;
/**
* Basic implementation of {@link NamingStrategy} with no schema, table based on {@link Class} and
* column name based on {@link JdbcPersistentProperty}.
*
* NOTE: Can also be used as an adapter. Create an anonymous subclass and override any settings to implement
* a different strategy on the fly.
*
* @author Greg Turnquist
* @author Michael Simons
* @deprecated Use {@link NamingStrategy} for a default implementation and implement methods as needed
*/
public class DefaultNamingStrategy implements NamingStrategy {
}

10
src/main/java/org/springframework/data/jdbc/mapping/model/DelimiterNamingStrategy.java

@ -22,14 +22,14 @@ import org.springframework.data.util.ParsingUtils;
* column name based on {@link JdbcPersistentProperty}. The default delimiter is '_', resulting in snake case. * column name based on {@link JdbcPersistentProperty}. The default delimiter is '_', resulting in snake case.
* *
* @author Kazuki Shimizu * @author Kazuki Shimizu
* @author Jens Schauder
*/ */
public class DelimiterNamingStrategy extends DefaultNamingStrategy { public class DelimiterNamingStrategy implements NamingStrategy {
private final String delimiter; private final String delimiter;
/** /**
* Construct a instance with '_' as delimiter. * Construct a instance with '_' as delimiter. This results in a snake case naming strategy.
* This results in a snake case naming strategy.
*/ */
public DelimiterNamingStrategy() { public DelimiterNamingStrategy() {
this("_"); this("_");
@ -49,7 +49,7 @@ public class DelimiterNamingStrategy extends DefaultNamingStrategy {
*/ */
@Override @Override
public String getTableName(Class<?> type) { public String getTableName(Class<?> type) {
return ParsingUtils.reconcatenateCamelCase(super.getTableName(type), delimiter); return ParsingUtils.reconcatenateCamelCase(NamingStrategy.super.getTableName(type), delimiter);
} }
/** /**
@ -57,7 +57,7 @@ public class DelimiterNamingStrategy extends DefaultNamingStrategy {
*/ */
@Override @Override
public String getColumnName(JdbcPersistentProperty property) { public String getColumnName(JdbcPersistentProperty property) {
return ParsingUtils.reconcatenateCamelCase(super.getColumnName(property), delimiter); return ParsingUtils.reconcatenateCamelCase(NamingStrategy.super.getColumnName(property), delimiter);
} }
/** /**

2
src/main/java/org/springframework/data/jdbc/mapping/model/JdbcMappingContext.java

@ -71,7 +71,7 @@ public class JdbcMappingContext extends AbstractMappingContext<JdbcPersistentEnt
} }
public JdbcMappingContext(NamedParameterJdbcOperations template) { public JdbcMappingContext(NamedParameterJdbcOperations template) {
this(new DefaultNamingStrategy(), template, __ -> {}); this(NamingStrategy.INSTANCE, template, __ -> {});
} }
@Override @Override

29
src/main/java/org/springframework/data/jdbc/mapping/model/NamingStrategy.java

@ -16,21 +16,28 @@
package org.springframework.data.jdbc.mapping.model; package org.springframework.data.jdbc.mapping.model;
/** /**
* Interface and default implementation of a naming strategy. Defaults to no schema, * Interface and default implementation of a naming strategy. Defaults to no schema, table name based on {@link Class}
* table name based on {@link Class} and column name based on {@link JdbcPersistentProperty}. * and column name based on {@link JdbcPersistentProperty}.
* * <p>
* NOTE: Can also be used as an adapter. Create a lambda or an anonymous subclass and * NOTE: Can also be used as an adapter. Create a lambda or an anonymous subclass and override any settings to implement
* override any settings to implement a different strategy on the fly. * a different strategy on the fly.
* *
* @author Greg Turnquist * @author Greg Turnquist
* @author Michael Simons * @author Michael Simons
*/ */
public interface NamingStrategy { public interface NamingStrategy {
/**
* Empty implementation of the interface utilizing only the default implementation.
* <p>
* Using this avoids creating essentially the same class over and over again.
*/
NamingStrategy INSTANCE = new NamingStrategy() {};
/** /**
* Defaults to no schema. * Defaults to no schema.
* *
* @return No schema * @return Empty String representing no schema
*/ */
default String getSchema() { default String getSchema() {
return ""; return "";
@ -58,17 +65,19 @@ public interface NamingStrategy {
* For a reference A -&gt; B this is the name in the table for B which references A. * For a reference A -&gt; B this is the name in the table for B which references A.
* *
* @param property The property who's column name in the owner table is required * @param property The property who's column name in the owner table is required
* @return a column name. * @return a column name. Must not be {@code null}.
*/ */
default String getReverseColumnName(JdbcPersistentProperty property) { default String getReverseColumnName(JdbcPersistentProperty property) {
return property.getOwner().getTableName(); return property.getOwner().getTableName();
} }
/** /**
* For a map valued reference A -> Map&gt;X,B&lt; this is the name of the column in the tabel for B holding the key of the map. * For a map valued reference A -> Map&gt;X,B&lt; this is the name of the column in the table for B holding the key of
* @return * the map.
*
* @return name of the key column. Must not be {@code null}.
*/ */
default String getKeyColumn(JdbcPersistentProperty property){ default String getKeyColumn(JdbcPersistentProperty property) {
return getReverseColumnName(property) + "_key"; return getReverseColumnName(property) + "_key";
} }

5
src/main/java/org/springframework/data/jdbc/repository/config/JdbcConfiguration.java

@ -20,7 +20,6 @@ import java.util.Optional;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.data.jdbc.mapping.model.ConversionCustomizer; import org.springframework.data.jdbc.mapping.model.ConversionCustomizer;
import org.springframework.data.jdbc.mapping.model.DefaultNamingStrategy;
import org.springframework.data.jdbc.mapping.model.JdbcMappingContext; import org.springframework.data.jdbc.mapping.model.JdbcMappingContext;
import org.springframework.data.jdbc.mapping.model.NamingStrategy; import org.springframework.data.jdbc.mapping.model.NamingStrategy;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
@ -37,7 +36,7 @@ public class JdbcConfiguration {
JdbcMappingContext jdbcMappingContext(NamedParameterJdbcTemplate template, Optional<NamingStrategy> namingStrategy, JdbcMappingContext jdbcMappingContext(NamedParameterJdbcTemplate template, Optional<NamingStrategy> namingStrategy,
Optional<ConversionCustomizer> conversionCustomizer) { Optional<ConversionCustomizer> conversionCustomizer) {
return new JdbcMappingContext( return new JdbcMappingContext(namingStrategy.orElse(NamingStrategy.INSTANCE), template,
namingStrategy.orElse(new DefaultNamingStrategy()), template, conversionCustomizer.orElse(conversionService -> {})); conversionCustomizer.orElse(conversionService -> {}));
} }
} }

4
src/test/java/org/springframework/data/jdbc/core/DefaultDataAccessStrategyUnitTests.java

@ -25,8 +25,8 @@ import java.util.HashMap;
import org.junit.Test; import org.junit.Test;
import org.mockito.ArgumentCaptor; import org.mockito.ArgumentCaptor;
import org.springframework.data.annotation.Id; import org.springframework.data.annotation.Id;
import org.springframework.data.jdbc.mapping.model.DefaultNamingStrategy;
import org.springframework.data.jdbc.mapping.model.JdbcMappingContext; import org.springframework.data.jdbc.mapping.model.JdbcMappingContext;
import org.springframework.data.jdbc.mapping.model.NamingStrategy;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcOperations; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcOperations;
import org.springframework.jdbc.core.namedparam.SqlParameterSource; import org.springframework.jdbc.core.namedparam.SqlParameterSource;
import org.springframework.jdbc.support.KeyHolder; import org.springframework.jdbc.support.KeyHolder;
@ -42,7 +42,7 @@ public class DefaultDataAccessStrategyUnitTests {
public static final long ORIGINAL_ID = 4711L; public static final long ORIGINAL_ID = 4711L;
NamedParameterJdbcOperations jdbcOperations = mock(NamedParameterJdbcOperations.class); NamedParameterJdbcOperations jdbcOperations = mock(NamedParameterJdbcOperations.class);
JdbcMappingContext context = new JdbcMappingContext(new DefaultNamingStrategy(), jdbcOperations, __ -> {}); JdbcMappingContext context = new JdbcMappingContext(NamingStrategy.INSTANCE, jdbcOperations, __ -> {});
HashMap<String, Object> additionalParameters = new HashMap<>(); HashMap<String, Object> additionalParameters = new HashMap<>();
ArgumentCaptor<SqlParameterSource> paramSourceCaptor = ArgumentCaptor.forClass(SqlParameterSource.class); ArgumentCaptor<SqlParameterSource> paramSourceCaptor = ArgumentCaptor.forClass(SqlParameterSource.class);

4
src/test/java/org/springframework/data/jdbc/core/DefaultJdbcInterpreterUnitTests.java

@ -27,9 +27,9 @@ import org.springframework.data.annotation.Id;
import org.springframework.data.jdbc.core.conversion.DbAction; import org.springframework.data.jdbc.core.conversion.DbAction;
import org.springframework.data.jdbc.core.conversion.DbAction.Insert; import org.springframework.data.jdbc.core.conversion.DbAction.Insert;
import org.springframework.data.jdbc.core.conversion.JdbcPropertyPath; import org.springframework.data.jdbc.core.conversion.JdbcPropertyPath;
import org.springframework.data.jdbc.mapping.model.DefaultNamingStrategy;
import org.springframework.data.jdbc.mapping.model.JdbcMappingContext; import org.springframework.data.jdbc.mapping.model.JdbcMappingContext;
import org.springframework.data.jdbc.mapping.model.JdbcPersistentProperty; import org.springframework.data.jdbc.mapping.model.JdbcPersistentProperty;
import org.springframework.data.jdbc.mapping.model.NamingStrategy;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcOperations; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcOperations;
/** /**
@ -42,7 +42,7 @@ public class DefaultJdbcInterpreterUnitTests {
static final long CONTAINER_ID = 23L; static final long CONTAINER_ID = 23L;
static final String BACK_REFERENCE = "back-reference"; static final String BACK_REFERENCE = "back-reference";
JdbcMappingContext context = new JdbcMappingContext(new DefaultNamingStrategy() { JdbcMappingContext context = new JdbcMappingContext(new NamingStrategy() {
@Override @Override
public String getReverseColumnName(JdbcPersistentProperty property) { public String getReverseColumnName(JdbcPersistentProperty property) {
return BACK_REFERENCE; return BACK_REFERENCE;

71
src/test/java/org/springframework/data/jdbc/core/EntityRowMapperUnitTests.java

@ -15,7 +15,24 @@
*/ */
package org.springframework.data.jdbc.core; package org.springframework.data.jdbc.core;
import static java.util.Arrays.*;
import static org.assertj.core.api.Assertions.*;
import static org.mockito.Mockito.*;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.AbstractMap.SimpleEntry;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.naming.OperationNotSupportedException;
import org.junit.Test; import org.junit.Test;
import org.mockito.invocation.InvocationOnMock; import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer; import org.mockito.stubbing.Answer;
@ -23,7 +40,6 @@ import org.springframework.core.convert.support.DefaultConversionService;
import org.springframework.core.convert.support.GenericConversionService; import org.springframework.core.convert.support.GenericConversionService;
import org.springframework.data.annotation.Id; import org.springframework.data.annotation.Id;
import org.springframework.data.convert.Jsr310Converters; import org.springframework.data.convert.Jsr310Converters;
import org.springframework.data.jdbc.mapping.model.DefaultNamingStrategy;
import org.springframework.data.jdbc.mapping.model.JdbcMappingContext; import org.springframework.data.jdbc.mapping.model.JdbcMappingContext;
import org.springframework.data.jdbc.mapping.model.JdbcPersistentEntity; import org.springframework.data.jdbc.mapping.model.JdbcPersistentEntity;
import org.springframework.data.jdbc.mapping.model.JdbcPersistentProperty; import org.springframework.data.jdbc.mapping.model.JdbcPersistentProperty;
@ -31,21 +47,6 @@ import org.springframework.data.jdbc.mapping.model.NamingStrategy;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcOperations; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcOperations;
import org.springframework.util.Assert; import org.springframework.util.Assert;
import javax.naming.OperationNotSupportedException;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.AbstractMap.SimpleEntry;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import static java.util.Arrays.*;
import static org.assertj.core.api.Assertions.*;
import static org.mockito.Mockito.*;
/** /**
* Tests the extraction of entities from a {@link ResultSet} by the {@link EntityRowMapper}. * Tests the extraction of entities from a {@link ResultSet} by the {@link EntityRowMapper}.
* *
@ -56,10 +57,10 @@ public class EntityRowMapperUnitTests {
public static final long ID_FOR_ENTITY_REFERENCING_MAP = 42L; public static final long ID_FOR_ENTITY_REFERENCING_MAP = 42L;
public static final long ID_FOR_ENTITY_REFERENCING_LIST = 4711L; public static final long ID_FOR_ENTITY_REFERENCING_LIST = 4711L;
public static final long ID_FOR_ENTITY_NOT_REFERENCING_MAP = 23L; public static final long ID_FOR_ENTITY_NOT_REFERENCING_MAP = 23L;
public static final DefaultNamingStrategy X_APPENDING_NAMINGSTRATEGY = new DefaultNamingStrategy() { public static final NamingStrategy X_APPENDING_NAMINGSTRATEGY = new NamingStrategy() {
@Override @Override
public String getColumnName(JdbcPersistentProperty property) { public String getColumnName(JdbcPersistentProperty property) {
return super.getColumnName(property) + "x"; return NamingStrategy.super.getColumnName(property) + "x";
} }
}; };
@ -169,7 +170,7 @@ public class EntityRowMapperUnitTests {
} }
private <T> EntityRowMapper<T> createRowMapper(Class<T> type) { private <T> EntityRowMapper<T> createRowMapper(Class<T> type) {
return createRowMapper(type, new DefaultNamingStrategy()); return createRowMapper(type, NamingStrategy.INSTANCE);
} }
private <T> EntityRowMapper<T> createRowMapper(Class<T> type, NamingStrategy namingStrategy) { private <T> EntityRowMapper<T> createRowMapper(Class<T> type, NamingStrategy namingStrategy) {
@ -177,15 +178,14 @@ public class EntityRowMapperUnitTests {
JdbcMappingContext context = new JdbcMappingContext( // JdbcMappingContext context = new JdbcMappingContext( //
namingStrategy, // namingStrategy, //
mock(NamedParameterJdbcOperations.class), // mock(NamedParameterJdbcOperations.class), //
__ -> { __ -> {} //
} //
); );
DataAccessStrategy accessStrategy = mock(DataAccessStrategy.class); DataAccessStrategy accessStrategy = mock(DataAccessStrategy.class);
// the ID of the entity is used to determine what kind of ResultSet is needed for subsequent selects. // the ID of the entity is used to determine what kind of ResultSet is needed for subsequent selects.
doReturn(new HashSet<>(asList(new Trivial(), new Trivial()))).when(accessStrategy).findAllByProperty(eq(ID_FOR_ENTITY_NOT_REFERENCING_MAP), doReturn(new HashSet<>(asList(new Trivial(), new Trivial()))).when(accessStrategy)
any(JdbcPersistentProperty.class)); .findAllByProperty(eq(ID_FOR_ENTITY_NOT_REFERENCING_MAP), any(JdbcPersistentProperty.class));
doReturn(new HashSet<>(asList( // doReturn(new HashSet<>(asList( //
new SimpleEntry("one", new Trivial()), // new SimpleEntry("one", new Trivial()), //
@ -202,8 +202,8 @@ public class EntityRowMapperUnitTests {
DefaultConversionService.addDefaultConverters(conversionService); DefaultConversionService.addDefaultConverters(conversionService);
Jsr310Converters.getConvertersToRegister().forEach(conversionService::addConverter); Jsr310Converters.getConvertersToRegister().forEach(conversionService::addConverter);
return new EntityRowMapper<>((JdbcPersistentEntity<T>) context.getRequiredPersistentEntity(type), return new EntityRowMapper<>((JdbcPersistentEntity<T>) context.getRequiredPersistentEntity(type), context,
context, accessStrategy); accessStrategy);
} }
private static ResultSet mockResultSet(List<String> columns, Object... values) { private static ResultSet mockResultSet(List<String> columns, Object... values) {
@ -291,7 +291,8 @@ public class EntityRowMapperUnitTests {
Map<String, Object> rowMap = values.get(index); Map<String, Object> rowMap = values.get(index);
Assert.isTrue(rowMap.containsKey(column), String.format("Trying to access a column (%s) that does not exist", column)); Assert.isTrue(rowMap.containsKey(column),
String.format("Trying to access a column (%s) that does not exist", column));
return rowMap.get(column); return rowMap.get(column);
} }
@ -306,46 +307,40 @@ public class EntityRowMapperUnitTests {
@RequiredArgsConstructor @RequiredArgsConstructor
static class TrivialImmutable { static class TrivialImmutable {
@Id @Id private final Long id;
private final Long id;
private final String name; private final String name;
} }
static class Trivial { static class Trivial {
@Id @Id Long id;
Long id;
String name; String name;
} }
static class OneToOne { static class OneToOne {
@Id @Id Long id;
Long id;
String name; String name;
Trivial child; Trivial child;
} }
static class OneToSet { static class OneToSet {
@Id @Id Long id;
Long id;
String name; String name;
Set<Trivial> children; Set<Trivial> children;
} }
static class OneToMap { static class OneToMap {
@Id @Id Long id;
Long id;
String name; String name;
Map<String, Trivial> children; Map<String, Trivial> children;
} }
static class OneToList { static class OneToList {
@Id @Id Long id;
Long id;
String name; String name;
List<Trivial> children; List<Trivial> children;
} }

16
src/test/java/org/springframework/data/jdbc/core/SqlGeneratorContextBasedNamingStrategyUnitTests.java

@ -25,7 +25,6 @@ import java.util.function.Consumer;
import org.assertj.core.api.SoftAssertions; import org.assertj.core.api.SoftAssertions;
import org.junit.Test; import org.junit.Test;
import org.springframework.data.annotation.Id; import org.springframework.data.annotation.Id;
import org.springframework.data.jdbc.mapping.model.DefaultNamingStrategy;
import org.springframework.data.jdbc.mapping.model.JdbcMappingContext; import org.springframework.data.jdbc.mapping.model.JdbcMappingContext;
import org.springframework.data.jdbc.mapping.model.JdbcPersistentEntity; import org.springframework.data.jdbc.mapping.model.JdbcPersistentEntity;
import org.springframework.data.jdbc.mapping.model.NamingStrategy; import org.springframework.data.jdbc.mapping.model.NamingStrategy;
@ -33,10 +32,9 @@ import org.springframework.data.mapping.PropertyPath;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcOperations; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcOperations;
/** /**
* Unit tests to verify a contextual {@link NamingStrategy} implementation that customizes using a user-centric {@link ThreadLocal}. * Unit tests to verify a contextual {@link NamingStrategy} implementation that customizes using a user-centric
* * {@link ThreadLocal}. NOTE: Due to the need to verify SQL generation and {@link SqlGenerator}'s package-private status
* NOTE: Due to the need to verify SQL generation and {@link SqlGenerator}'s package-private status suggests * suggests this unit test exist in this package, not {@literal org.springframework.data.jdbc.mappings.model}.
* this unit test exist in this package, not {@literal org.springframework.data.jdbc.mappings.model}.
* *
* @author Greg Turnquist * @author Greg Turnquist
*/ */
@ -45,9 +43,10 @@ public class SqlGeneratorContextBasedNamingStrategyUnitTests {
private final ThreadLocal<String> userHandler = new ThreadLocal<>(); private final ThreadLocal<String> userHandler = new ThreadLocal<>();
/** /**
* Use a {@link DefaultNamingStrategy}, but override the schema with a {@link ThreadLocal}-based setting. * Use a {@link NamingStrategy}, but override the schema with a {@link ThreadLocal}-based setting.
*/ */
private final NamingStrategy contextualNamingStrategy = new DefaultNamingStrategy() { private final NamingStrategy contextualNamingStrategy = new NamingStrategy() {
@Override @Override
public String getSchema() { public String getSchema() {
return userHandler.get(); return userHandler.get();
@ -84,8 +83,7 @@ public class SqlGeneratorContextBasedNamingStrategyUnitTests {
String sql = sqlGenerator.createDeleteByPath(PropertyPath.from("ref", DummyEntity.class)); String sql = sqlGenerator.createDeleteByPath(PropertyPath.from("ref", DummyEntity.class));
assertThat(sql).isEqualTo( assertThat(sql).isEqualTo("DELETE FROM " + user + ".ReferencedEntity WHERE " + user + ".DummyEntity = :rootId");
"DELETE FROM " + user + ".ReferencedEntity WHERE " + user + ".DummyEntity = :rootId");
}); });
} }

5
src/test/java/org/springframework/data/jdbc/core/SqlGeneratorFixedNamingStrategyUnitTests.java

@ -21,7 +21,6 @@ import static org.mockito.Mockito.*;
import org.assertj.core.api.SoftAssertions; import org.assertj.core.api.SoftAssertions;
import org.junit.Test; import org.junit.Test;
import org.springframework.data.annotation.Id; import org.springframework.data.annotation.Id;
import org.springframework.data.jdbc.mapping.model.DefaultNamingStrategy;
import org.springframework.data.jdbc.mapping.model.JdbcMappingContext; import org.springframework.data.jdbc.mapping.model.JdbcMappingContext;
import org.springframework.data.jdbc.mapping.model.JdbcPersistentEntity; import org.springframework.data.jdbc.mapping.model.JdbcPersistentEntity;
import org.springframework.data.jdbc.mapping.model.JdbcPersistentProperty; import org.springframework.data.jdbc.mapping.model.JdbcPersistentProperty;
@ -37,7 +36,7 @@ import org.springframework.jdbc.core.namedparam.NamedParameterJdbcOperations;
*/ */
public class SqlGeneratorFixedNamingStrategyUnitTests { public class SqlGeneratorFixedNamingStrategyUnitTests {
final NamingStrategy fixedCustomTablePrefixStrategy = new DefaultNamingStrategy() { final NamingStrategy fixedCustomTablePrefixStrategy = new NamingStrategy() {
@Override @Override
public String getSchema() { public String getSchema() {
@ -55,7 +54,7 @@ public class SqlGeneratorFixedNamingStrategyUnitTests {
} }
}; };
final NamingStrategy upperCaseLowerCaseStrategy = new DefaultNamingStrategy() { final NamingStrategy upperCaseLowerCaseStrategy = new NamingStrategy() {
@Override @Override
public String getTableName(Class<?> type) { public String getTableName(Class<?> type) {

5
src/test/java/org/springframework/data/jdbc/core/SqlGeneratorUnitTests.java

@ -25,7 +25,6 @@ import org.assertj.core.api.SoftAssertions;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.springframework.data.annotation.Id; import org.springframework.data.annotation.Id;
import org.springframework.data.jdbc.mapping.model.DefaultNamingStrategy;
import org.springframework.data.jdbc.mapping.model.JdbcMappingContext; import org.springframework.data.jdbc.mapping.model.JdbcMappingContext;
import org.springframework.data.jdbc.mapping.model.JdbcPersistentEntity; import org.springframework.data.jdbc.mapping.model.JdbcPersistentEntity;
import org.springframework.data.jdbc.mapping.model.JdbcPersistentProperty; import org.springframework.data.jdbc.mapping.model.JdbcPersistentProperty;
@ -186,11 +185,11 @@ public class SqlGeneratorUnitTests {
String content; String content;
} }
private static class PrefixingNamingStrategy extends DefaultNamingStrategy { private static class PrefixingNamingStrategy implements NamingStrategy {
@Override @Override
public String getColumnName(JdbcPersistentProperty property) { public String getColumnName(JdbcPersistentProperty property) {
return "x_" + super.getColumnName(property); return "x_" + NamingStrategy.super.getColumnName(property);
} }
} }

5
src/test/java/org/springframework/data/jdbc/mapping/model/BasicJdbcPersistentEntityInformationUnitTests.java

@ -29,7 +29,10 @@ import org.springframework.lang.Nullable;
*/ */
public class BasicJdbcPersistentEntityInformationUnitTests { public class BasicJdbcPersistentEntityInformationUnitTests {
JdbcMappingContext context = new JdbcMappingContext(new DefaultNamingStrategy(), mock(NamedParameterJdbcOperations.class), cs -> {}); JdbcMappingContext context = new JdbcMappingContext( //
NamingStrategy.INSTANCE, //
mock(NamedParameterJdbcOperations.class), //
cs -> {});
private DummyEntity dummyEntity = new DummyEntity(); private DummyEntity dummyEntity = new DummyEntity();
private PersistableDummyEntity persistableDummyEntity = new PersistableDummyEntity(); private PersistableDummyEntity persistableDummyEntity = new PersistableDummyEntity();

12
src/test/java/org/springframework/data/jdbc/mapping/model/JdbcMappingContextUnitTests.java

@ -15,14 +15,14 @@
*/ */
package org.springframework.data.jdbc.mapping.model; package org.springframework.data.jdbc.mapping.model;
import org.junit.Test; import static org.assertj.core.api.Assertions.*;
import org.springframework.data.mapping.PropertyPath; import static org.mockito.Mockito.*;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcOperations;
import java.util.List; import java.util.List;
import static org.assertj.core.api.Assertions.*; import org.junit.Test;
import static org.mockito.Mockito.*; import org.springframework.data.mapping.PropertyPath;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcOperations;
/** /**
* Unit tests for {@link JdbcMappingContext}. * Unit tests for {@link JdbcMappingContext}.
@ -31,7 +31,7 @@ import static org.mockito.Mockito.*;
*/ */
public class JdbcMappingContextUnitTests { public class JdbcMappingContextUnitTests {
NamingStrategy namingStrategy = new DefaultNamingStrategy(); NamingStrategy namingStrategy = NamingStrategy.INSTANCE;
NamedParameterJdbcOperations jdbcTemplate = mock(NamedParameterJdbcOperations.class); NamedParameterJdbcOperations jdbcTemplate = mock(NamedParameterJdbcOperations.class);
ConversionCustomizer customizer = mock(ConversionCustomizer.class); ConversionCustomizer customizer = mock(ConversionCustomizer.class);

5
src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryIdGenerationIntegrationTests.java

@ -15,7 +15,7 @@
*/ */
package org.springframework.data.jdbc.repository; package org.springframework.data.jdbc.repository;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.*;
import lombok.Data; import lombok.Data;
import lombok.Value; import lombok.Value;
@ -31,7 +31,6 @@ import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Import;
import org.springframework.data.annotation.Id; import org.springframework.data.annotation.Id;
import org.springframework.data.jdbc.mapping.model.DefaultNamingStrategy;
import org.springframework.data.jdbc.mapping.model.NamingStrategy; import org.springframework.data.jdbc.mapping.model.NamingStrategy;
import org.springframework.data.jdbc.repository.config.EnableJdbcRepositories; import org.springframework.data.jdbc.repository.config.EnableJdbcRepositories;
import org.springframework.data.jdbc.repository.support.JdbcRepositoryFactory; import org.springframework.data.jdbc.repository.support.JdbcRepositoryFactory;
@ -134,7 +133,7 @@ public class JdbcRepositoryIdGenerationIntegrationTests {
*/ */
@Bean @Bean
NamingStrategy namingStrategy() { NamingStrategy namingStrategy() {
return new DefaultNamingStrategy() { return new NamingStrategy() {
@Override @Override
public String getTableName(Class<?> type) { public String getTableName(Class<?> type) {
return type.getSimpleName().toUpperCase(); return type.getSimpleName().toUpperCase();

5
src/test/java/org/springframework/data/jdbc/testing/TestConfiguration.java

@ -31,7 +31,6 @@ import org.springframework.data.jdbc.core.DefaultDataAccessStrategy;
import org.springframework.data.jdbc.core.DelegatingDataAccessStrategy; import org.springframework.data.jdbc.core.DelegatingDataAccessStrategy;
import org.springframework.data.jdbc.core.SqlGeneratorSource; import org.springframework.data.jdbc.core.SqlGeneratorSource;
import org.springframework.data.jdbc.mapping.model.ConversionCustomizer; import org.springframework.data.jdbc.mapping.model.ConversionCustomizer;
import org.springframework.data.jdbc.mapping.model.DefaultNamingStrategy;
import org.springframework.data.jdbc.mapping.model.JdbcMappingContext; import org.springframework.data.jdbc.mapping.model.JdbcMappingContext;
import org.springframework.data.jdbc.mapping.model.NamingStrategy; import org.springframework.data.jdbc.mapping.model.NamingStrategy;
import org.springframework.data.jdbc.repository.support.JdbcRepositoryFactory; import org.springframework.data.jdbc.repository.support.JdbcRepositoryFactory;
@ -59,7 +58,7 @@ public class TestConfiguration {
NamedParameterJdbcTemplate jdbcTemplate = namedParameterJdbcTemplate(); NamedParameterJdbcTemplate jdbcTemplate = namedParameterJdbcTemplate();
final JdbcMappingContext context = new JdbcMappingContext(new DefaultNamingStrategy(), jdbcTemplate, __ -> {}); final JdbcMappingContext context = new JdbcMappingContext(NamingStrategy.INSTANCE, jdbcTemplate, __ -> {});
return new JdbcRepositoryFactory( // return new JdbcRepositoryFactory( //
publisher, // publisher, //
@ -102,7 +101,7 @@ public class TestConfiguration {
Optional<ConversionCustomizer> conversionCustomizer) { Optional<ConversionCustomizer> conversionCustomizer) {
return new JdbcMappingContext( // return new JdbcMappingContext( //
namingStrategy.orElse(new DefaultNamingStrategy()), // namingStrategy.orElse(NamingStrategy.INSTANCE), //
template, // template, //
conversionCustomizer.orElse(conversionService -> {}) // conversionCustomizer.orElse(conversionService -> {}) //
); );

Loading…
Cancel
Save