Introduced new JDBC dialect counterparts.

Signed-off-by: mipo256 <mikhailpolivakha@gmail.com>

Commit message edited by Jens Schauder

Original pull request #2036
Closes #2031
This commit is contained in:
mipo256
2025-04-20 16:05:52 +03:00
committed by Jens Schauder
parent 58a3f01ccd
commit 7698d487ba
30 changed files with 281 additions and 88 deletions

View File

@@ -32,7 +32,10 @@ public class Db2Dialect extends AbstractDialect {
/**
* Singleton instance.
*
* @deprecated use the {@code org.springframework.data.jdbc.core.dialect.JdbcDb2Dialect} directly.
*/
@Deprecated(forRemoval = true)
public static final Db2Dialect INSTANCE = new Db2Dialect();
private static final IdGeneration ID_GENERATION = new IdGeneration() {
@@ -43,6 +46,7 @@ public class Db2Dialect extends AbstractDialect {
@Override
public String createSequenceQuery(SqlIdentifier sequenceName) {
/*
* This workaround (non-ANSI SQL way of querying sequence) exists for the same reasons it exists for {@link HsqlDbDialect}
*

View File

@@ -38,8 +38,13 @@ public class H2Dialect extends AbstractDialect {
/**
* Singleton instance.
*
* @deprecated use either the {@code org.springframework.data.r2dbc.dialect.H2Dialect} or
* {@code org.springframework.data.jdbc.core.dialect.JdbcH2Dialect}.
*/
@Deprecated(forRemoval = true)
public static final H2Dialect INSTANCE = new H2Dialect();
private static final IdentifierProcessing IDENTIFIER_PROCESSING = IdentifierProcessing.create(Quoting.ANSI,
LetterCasing.UPPER_CASE);
private static final IdGeneration ID_GENERATION = IdGeneration.create(IDENTIFIER_PROCESSING);
@@ -86,7 +91,7 @@ public class H2Dialect extends AbstractDialect {
return ARRAY_COLUMNS;
}
static class H2ArrayColumns implements ArrayColumns {
protected static class H2ArrayColumns implements ArrayColumns {
@Override
public boolean isSupported() {

View File

@@ -26,6 +26,10 @@ import org.springframework.data.relational.core.sql.SqlIdentifier;
*/
public class HsqlDbDialect extends AbstractDialect {
/**
* @deprecated use the {@code org.springframework.data.jdbc.core.dialect.JdbcHsqlDbDialect} directly.
*/
@Deprecated(forRemoval = true)
public static final HsqlDbDialect INSTANCE = new HsqlDbDialect();
protected HsqlDbDialect() {}

View File

@@ -43,7 +43,11 @@ public class MySqlDialect extends AbstractDialect {
/**
* Singleton instance.
*
* @deprecated use either the {@code org.springframework.data.r2dbc.dialect.MySqlDialect} or
* {@code org.springframework.data.jdbc.core.dialect.JdbcMySqlDialect}
*/
@Deprecated(forRemoval = true)
public static final MySqlDialect INSTANCE = new MySqlDialect();
private final IdentifierProcessing identifierProcessing;

View File

@@ -15,7 +15,7 @@
*/
package org.springframework.data.relational.core.dialect;
import static java.util.Arrays.*;
import static java.util.Arrays.asList;
import java.util.Collection;
@@ -35,7 +35,11 @@ public class OracleDialect extends AnsiDialect {
/**
* Singleton instance.
*
* @deprecated use either the {@code org.springframework.data.r2dbc.dialect.OracleDialect} or
* {@code org.springframework.data.jdbc.core.dialect.JdbcOracleDialect}.
*/
@Deprecated(forRemoval = true)
public static final OracleDialect INSTANCE = new OracleDialect();
private static final IdGeneration ID_GENERATION = new IdGeneration() {

View File

@@ -49,13 +49,17 @@ public class PostgresDialect extends AbstractDialect {
/**
* Singleton instance.
*
* @deprecated use either the {@code org.springframework.data.r2dbc.dialect.PostgresDialect} or
* {@code org.springframework.data.jdbc.core.dialect.JdbcPostgresDialect}.
*/
@Deprecated(forRemoval = true)
public static final PostgresDialect INSTANCE = new PostgresDialect();
private static final Set<Class<?>> POSTGRES_SIMPLE_TYPES = Set.of(UUID.class, URL.class, URI.class, InetAddress.class,
Map.class);
private IdentifierProcessing identifierProcessing = IdentifierProcessing.create(Quoting.ANSI,
private static final IdentifierProcessing identifierProcessing = IdentifierProcessing.create(Quoting.ANSI,
LetterCasing.LOWER_CASE);
private IdGeneration idGeneration = new IdGeneration() {

View File

@@ -34,7 +34,11 @@ public class SqlServerDialect extends AbstractDialect {
/**
* Singleton instance.
*
* @deprecated use either the {@code org.springframework.data.r2dbc.dialect.SqlServerDialect} or
* {@code org.springframework.data.jdbc.core.dialect.JdbcSqlServerDialect}.
*/
@Deprecated(forRemoval = true)
public static final SqlServerDialect INSTANCE = new SqlServerDialect();
private static final IdentifierProcessing IDENTIFIER_PROCESSING = IdentifierProcessing

View File

@@ -15,14 +15,14 @@
*/
package org.springframework.data.relational.core.dialect;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
import org.junit.jupiter.api.Test;
import org.springframework.data.relational.core.sql.From;
import org.springframework.data.relational.core.sql.LockMode;
import org.springframework.data.relational.core.sql.LockOptions;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
/**
* Unit tests for the {@link HsqlDbDialect}.
*
@@ -34,7 +34,7 @@ public class HsqlDbDialectUnitTests {
@Test // DATAJDBC-386
public void shouldNotSupportArrays() {
ArrayColumns arrayColumns = HsqlDbDialect.INSTANCE.getArraySupport();
ArrayColumns arrayColumns = new HsqlDbDialect().getArraySupport();
assertThat(arrayColumns.isSupported()).isFalse();
}
@@ -42,7 +42,7 @@ public class HsqlDbDialectUnitTests {
@Test // DATAJDBC-386
public void shouldRenderLimit() {
LimitClause limit = HsqlDbDialect.INSTANCE.limit();
LimitClause limit = new HsqlDbDialect().limit();
assertThat(limit.getClausePosition()).isEqualTo(LimitClause.Position.AFTER_ORDER_BY);
assertThat(limit.getLimit(10)).isEqualTo("LIMIT 10");
@@ -51,7 +51,7 @@ public class HsqlDbDialectUnitTests {
@Test // DATAJDBC-386
public void shouldRenderOffset() {
LimitClause limit = HsqlDbDialect.INSTANCE.limit();
LimitClause limit = new HsqlDbDialect().limit();
assertThat(limit.getOffset(10)).isEqualTo("OFFSET 10");
}
@@ -59,7 +59,7 @@ public class HsqlDbDialectUnitTests {
@Test // DATAJDBC-386
public void shouldRenderLimitOffset() {
LimitClause limit = HsqlDbDialect.INSTANCE.limit();
LimitClause limit = new HsqlDbDialect().limit();
assertThat(limit.getLimitOffset(20, 10)).isEqualTo("OFFSET 10 LIMIT 20");
}
@@ -67,7 +67,7 @@ public class HsqlDbDialectUnitTests {
@Test // DATAJDBC-386
public void shouldQuoteIdentifiersUsingBackticks() {
String abcQuoted = HsqlDbDialect.INSTANCE.getIdentifierProcessing().quote("abc");
String abcQuoted = new HsqlDbDialect().getIdentifierProcessing().quote("abc");
assertThat(abcQuoted).isEqualTo("\"abc\"");
}
@@ -75,7 +75,7 @@ public class HsqlDbDialectUnitTests {
@Test // DATAJDBC-498
public void shouldRenderLock() {
LockClause limit = HsqlDbDialect.INSTANCE.lock();
LockClause limit = new HsqlDbDialect().lock();
From from = mock(From.class);
LockOptions lockOptions = new LockOptions(LockMode.PESSIMISTIC_WRITE, from);

View File

@@ -36,7 +36,7 @@ import org.springframework.data.relational.core.sql.render.SqlRenderer;
*/
public class MySqlDialectRenderingUnitTests {
private final RenderContextFactory factory = new RenderContextFactory(MySqlDialect.INSTANCE);
private final RenderContextFactory factory = new RenderContextFactory(new MySqlDialect());
@BeforeEach
public void before() {

View File

@@ -35,7 +35,7 @@ public class MySqlDialectUnitTests {
@Test // DATAJDBC-278
public void shouldNotSupportArrays() {
ArrayColumns arrayColumns = MySqlDialect.INSTANCE.getArraySupport();
ArrayColumns arrayColumns = new MySqlDialect().getArraySupport();
assertThat(arrayColumns.isSupported()).isFalse();
}
@@ -43,7 +43,7 @@ public class MySqlDialectUnitTests {
@Test // DATAJDBC-278
public void shouldRenderLimit() {
LimitClause limit = MySqlDialect.INSTANCE.limit();
LimitClause limit = new MySqlDialect().limit();
assertThat(limit.getClausePosition()).isEqualTo(LimitClause.Position.AFTER_ORDER_BY);
assertThat(limit.getLimit(10)).isEqualTo("LIMIT 10");
@@ -52,7 +52,7 @@ public class MySqlDialectUnitTests {
@Test // DATAJDBC-278
public void shouldRenderOffset() {
LimitClause limit = MySqlDialect.INSTANCE.limit();
LimitClause limit = new MySqlDialect().limit();
assertThat(limit.getOffset(10)).isEqualTo("LIMIT 10, 18446744073709551615");
}
@@ -60,7 +60,7 @@ public class MySqlDialectUnitTests {
@Test // DATAJDBC-278
public void shouldRenderLimitOffset() {
LimitClause limit = MySqlDialect.INSTANCE.limit();
LimitClause limit = new MySqlDialect().limit();
assertThat(limit.getLimitOffset(20, 10)).isEqualTo("LIMIT 10, 20");
}
@@ -68,7 +68,7 @@ public class MySqlDialectUnitTests {
@Test // DATAJDBC-386
public void shouldQuoteIdentifiersUsingBackticks() {
String abcQuoted = MySqlDialect.INSTANCE.getIdentifierProcessing().quote("abc");
String abcQuoted = new MySqlDialect().getIdentifierProcessing().quote("abc");
assertThat(abcQuoted).isEqualTo("`abc`");
}
@@ -76,7 +76,7 @@ public class MySqlDialectUnitTests {
@Test // DATAJDBC-498
public void shouldRenderLock() {
LockClause lock = MySqlDialect.INSTANCE.lock();
LockClause lock = new MySqlDialect().lock();
From from = mock(From.class);
assertThat(lock.getLock(new LockOptions(LockMode.PESSIMISTIC_WRITE, from))).isEqualTo("FOR UPDATE");