Skip to content

Commit 2188b5d

Browse files
committed
DATAJDBC-637 - Fix tests for all databases.
Adds SQL scripts for all databases. Separates tests for all databases vs. those that actually support nanosecond precision. Original pull request: #255.
1 parent 306f1b3 commit 2188b5d

9 files changed

+68
-2
lines changed

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

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -823,11 +823,26 @@ public void resavingAnUnversionedEntity() {
823823
}
824824

825825
@Test // DATAJDBC-637
826+
@EnabledOnFeature(SUPPORTS_NANOSECOND_PRECISION)
826827
public void saveAndLoadDateTimeWithFullPrecision() {
827828

828829
WithLocalDateTime entity = new WithLocalDateTime();
829830
entity.id = 23L;
830-
entity.testTime = LocalDateTime.of(5, 5, 5, 5, 5, 5, 123456789);
831+
entity.testTime = LocalDateTime.of(2005, 5, 5, 5, 5, 5, 123456789);
832+
833+
template.insert(entity);
834+
835+
WithLocalDateTime loaded = template.findById(23L, WithLocalDateTime.class);
836+
837+
assertThat(loaded.testTime).isEqualTo(entity.testTime);
838+
}
839+
840+
@Test // DATAJDBC-637
841+
public void saveAndLoadDateTimeWithMicrosecondPrecision() {
842+
843+
WithLocalDateTime entity = new WithLocalDateTime();
844+
entity.id = 23L;
845+
entity.testTime = LocalDateTime.of(2005, 5, 5, 5, 5, 5, 123456000);
831846

832847
template.insert(entity);
833848

spring-data-jdbc/src/test/java/org/springframework/data/jdbc/testing/TestDatabaseFeatures.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,11 @@ private void supportsArrays() {
7272
assumeThat(database).isNotIn(Database.MySql, Database.MariaDb, Database.SqlServer, Database.Db2, Database.Oracle);
7373
}
7474

75+
private void supportsNanosecondPrecision() {
76+
77+
assumeThat(database).isNotIn(Database.MySql, Database.PostgreSql, Database.MariaDb, Database.SqlServer);
78+
}
79+
7580
private void supportsMultiDimensionalArrays() {
7681

7782
supportsArrays();
@@ -109,6 +114,7 @@ public enum Feature {
109114
SUPPORTS_HUGE_NUMBERS(TestDatabaseFeatures::supportsHugeNumbers), //
110115
SUPPORTS_ARRAYS(TestDatabaseFeatures::supportsArrays), //
111116
SUPPORTS_GENERATED_IDS_IN_REFERENCED_ENTITIES(TestDatabaseFeatures::supportsGeneratedIdsInReferencedEntities), //
117+
SUPPORTS_NANOSECOND_PRECISION(TestDatabaseFeatures::supportsNanosecondPrecision), //
112118
IS_HSQL(f -> f.databaseIs(Database.Hsql));
113119

114120
private final Consumer<TestDatabaseFeatures> featureMethod;

spring-data-jdbc/src/test/resources/org.springframework.data.jdbc.core/JdbcAggregateTemplateIntegrationTests-db2.sql

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ DROP TABLE NO_ID_LIST_CHAIN4;
3535

3636
DROP TABLE WITH_READ_ONLY;
3737
DROP TABLE VERSIONED_AGGREGATE;
38+
DROP TABLE WITH_LOCAL_DATE_TIME;
3839

3940
CREATE TABLE LEGO_SET
4041
(
@@ -343,3 +344,10 @@ CREATE TABLE VERSIONED_AGGREGATE
343344
ID BIGINT GENERATED BY DEFAULT AS IDENTITY (START WITH 1) PRIMARY KEY,
344345
VERSION BIGINT
345346
);
347+
348+
349+
CREATE TABLE WITH_LOCAL_DATE_TIME
350+
(
351+
ID BIGINT NOT NULL PRIMARY KEY,
352+
TEST_TIME TIMESTAMP(9)
353+
);

spring-data-jdbc/src/test/resources/org.springframework.data.jdbc.core/JdbcAggregateTemplateIntegrationTests-h2.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -307,6 +307,6 @@ CREATE TABLE WITH_READ_ONLY
307307

308308
CREATE TABLE WITH_LOCAL_DATE_TIME
309309
(
310-
ID SERIAL PRIMARY KEY,
310+
ID BIGINT PRIMARY KEY,
311311
TEST_TIME TIMESTAMP(9) WITHOUT TIME ZONE
312312
);

spring-data-jdbc/src/test/resources/org.springframework.data.jdbc.core/JdbcAggregateTemplateIntegrationTests-mariadb.sql

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -290,3 +290,10 @@ CREATE TABLE VERSIONED_AGGREGATE
290290
ID BIGINT AUTO_INCREMENT PRIMARY KEY,
291291
VERSION BIGINT
292292
);
293+
294+
295+
CREATE TABLE WITH_LOCAL_DATE_TIME
296+
(
297+
ID BIGINT PRIMARY KEY,
298+
TEST_TIME TIMESTAMP(6)
299+
);

spring-data-jdbc/src/test/resources/org.springframework.data.jdbc.core/JdbcAggregateTemplateIntegrationTests-mssql.sql

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -316,3 +316,12 @@ CREATE TABLE VERSIONED_AGGREGATE
316316
ID BIGINT IDENTITY PRIMARY KEY,
317317
VERSION BIGINT
318318
);
319+
320+
321+
DROP TABLE IF EXISTS WITH_LOCAL_DATE_TIME;
322+
323+
CREATE TABLE WITH_LOCAL_DATE_TIME
324+
(
325+
ID BIGINT PRIMARY KEY,
326+
TEST_TIME datetime2(7)
327+
);

spring-data-jdbc/src/test/resources/org.springframework.data.jdbc.core/JdbcAggregateTemplateIntegrationTests-mysql.sql

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -295,3 +295,10 @@ CREATE TABLE WITH_READ_ONLY
295295
NAME VARCHAR(200),
296296
READ_ONLY VARCHAR(200) DEFAULT 'from-db'
297297
);
298+
299+
300+
CREATE TABLE WITH_LOCAL_DATE_TIME
301+
(
302+
ID BIGINT PRIMARY KEY,
303+
TEST_TIME TIMESTAMP(6)
304+
);

spring-data-jdbc/src/test/resources/org.springframework.data.jdbc.core/JdbcAggregateTemplateIntegrationTests-oracle.sql

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ DROP TABLE NO_ID_MAP_CHAIN3 CASCADE CONSTRAINTS PURGE;
2727
DROP TABLE NO_ID_MAP_CHAIN4 CASCADE CONSTRAINTS PURGE;
2828
DROP TABLE VERSIONED_AGGREGATE CASCADE CONSTRAINTS PURGE;
2929
DROP TABLE WITH_READ_ONLY CASCADE CONSTRAINTS PURGE;
30+
DROP TABLE WITH_LOCAL_DATE_TIME CASCADE CONSTRAINTS PURGE;
3031

3132
CREATE TABLE LEGO_SET
3233
(
@@ -325,3 +326,10 @@ CREATE TABLE WITH_READ_ONLY
325326
NAME VARCHAR(200),
326327
READ_ONLY VARCHAR(200) DEFAULT 'from-db'
327328
);
329+
330+
331+
CREATE TABLE WITH_LOCAL_DATE_TIME
332+
(
333+
ID NUMBER PRIMARY KEY,
334+
TEST_TIME TIMESTAMP(9)
335+
);

spring-data-jdbc/src/test/resources/org.springframework.data.jdbc.core/JdbcAggregateTemplateIntegrationTests-postgres.sql

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -318,3 +318,9 @@ CREATE TABLE WITH_READ_ONLY
318318
NAME VARCHAR(200),
319319
READ_ONLY VARCHAR(200) DEFAULT 'from-db'
320320
);
321+
322+
CREATE TABLE WITH_LOCAL_DATE_TIME
323+
(
324+
ID BIGINT PRIMARY KEY,
325+
TEST_TIME TIMESTAMP(9) WITHOUT TIME ZONE
326+
);

0 commit comments

Comments
 (0)