Skip to content

Commit 3f78efa

Browse files
authored
Add a test for the PostgreSQL UUID type (#778)
1 parent 76a5a19 commit 3f78efa

File tree

6 files changed

+54
-1
lines changed

6 files changed

+54
-1
lines changed

integration-test-common/src/main/resources/META-INF/org/seasar/doma/it/dao/ScriptDao/create-postgres.script

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ CREATE TABLE OWNER_OF_NO_ID (ID INTEGER NOT NULL PRIMARY KEY, NO_ID_VALUE1 INTEG
1919
CREATE TABLE CONSTRAINT_CHECKING (PRIMARY_KEY INTEGER PRIMARY KEY, UNIQUE_KEY INTEGER UNIQUE, FOREIGN_KEY INTEGER, CHECK_CONSTRAINT INTEGER, NOT_NULL INTEGER NOT NULL, CONSTRAINT CK_CONSTRAINT_CHECKING_1 CHECK (CHECK_CONSTRAINT > 0), CONSTRAINT FK_JOB_ID FOREIGN KEY (FOREIGN_KEY) REFERENCES JOB (ID));
2020
CREATE TABLE PATTERN (VALUE VARCHAR(10));
2121
CREATE TABLE SAL_EMP (NAME TEXT PRIMARY KEY, PAY_BY_QUARTER INTEGER[], SCHEDULE TEXT[][]);
22+
CREATE TABLE BOOK(ID UUID NOT NULL PRIMARY KEY, TITLE VARCHAR(100));
2223

2324
CREATE TABLE ID_GENERATOR(PK VARCHAR(20) NOT NULL PRIMARY KEY, VALUE INTEGER NOT NULL);
2425
CREATE TABLE MY_ID_GENERATOR(MY_PK VARCHAR(20) NOT NULL PRIMARY KEY, MY_VALUE INTEGER NOT NULL);

integration-test-common/src/main/resources/META-INF/org/seasar/doma/it/dao/ScriptDao/drop-postgres.script

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ DROP TABLE NO_ID;
3838
DROP TABLE OWNER_OF_NO_ID;
3939
DROP TABLE PATTERN;
4040
DROP TABLE SAL_EMP;
41+
DROP TABLE BOOK;
4142

4243
DROP TABLE ID_GENERATOR;
4344
DROP TABLE MY_ID_GENERATOR;
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package org.seasar.doma.it.criteria;
2+
3+
import java.util.UUID;
4+
import org.seasar.doma.Entity;
5+
import org.seasar.doma.Id;
6+
import org.seasar.doma.Metamodel;
7+
8+
@Entity(metamodel = @Metamodel)
9+
public class Book {
10+
@Id public UUID id;
11+
public String title;
12+
}

integration-test-java/src/main/java/org/seasar/doma/it/domain/DomainConverterProvider.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
AgeConverter.class,
77
LocationConverter.class,
88
HiredateConverter.class,
9-
StringArrayConverter.class
9+
StringArrayConverter.class,
10+
UUIDConverter.class
1011
})
1112
public class DomainConverterProvider {}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package org.seasar.doma.it.domain;
2+
3+
import java.util.UUID;
4+
import org.seasar.doma.ExternalDomain;
5+
import org.seasar.doma.jdbc.domain.DomainConverter;
6+
7+
@ExternalDomain
8+
public class UUIDConverter implements DomainConverter<UUID, Object> {
9+
10+
@Override
11+
public Object fromDomainToValue(UUID domain) {
12+
return domain;
13+
}
14+
15+
@Override
16+
public UUID fromValueToDomain(Object value) {
17+
return (UUID) value;
18+
}
19+
}

integration-test-java/src/test/java/org/seasar/doma/it/criteria/EntityqlInsertTest.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,12 @@
33
import static org.junit.jupiter.api.Assertions.assertEquals;
44
import static org.junit.jupiter.api.Assertions.assertNotNull;
55

6+
import java.util.UUID;
67
import org.junit.jupiter.api.Test;
78
import org.junit.jupiter.api.extension.ExtendWith;
9+
import org.seasar.doma.it.Dbms;
810
import org.seasar.doma.it.IntegrationTestEnvironment;
11+
import org.seasar.doma.it.Run;
912
import org.seasar.doma.jdbc.Config;
1013
import org.seasar.doma.jdbc.Result;
1114
import org.seasar.doma.jdbc.criteria.Entityql;
@@ -37,4 +40,20 @@ void test() {
3740
assertNotNull(department2);
3841
assertEquals("aaa", department2.getDepartmentName());
3942
}
43+
44+
@Run(onlyIf = Dbms.POSTGRESQL)
45+
@Test
46+
public void uuid() {
47+
Book_ b = new Book_();
48+
UUID id = UUID.randomUUID();
49+
50+
Book book = new Book();
51+
book.id = id;
52+
book.title = "BOOK TITLE";
53+
entityql.insert(b, book).execute();
54+
55+
Book book2 = entityql.from(b).where(c -> c.eq(b.id, id)).fetchOne();
56+
assertEquals(id, book2.id);
57+
assertEquals("BOOK TITLE", book2.title);
58+
}
4059
}

0 commit comments

Comments
 (0)