diff --git a/README.md b/README.md
index b4fc24d1..80fa7ae4 100644
--- a/README.md
+++ b/README.md
@@ -94,7 +94,7 @@ studentModel.findOrFail(8).bind("teachers").attach( 1, 2, 3 );
com.github.gaarason.database-all
database-spring-boot-starter
{latest-version}
-
+
```
diff --git a/database-api/src/main/java/gaarason/database/annotation/Column.java b/database-api/src/main/java/gaarason/database/annotation/Column.java
index e26c5737..224ac665 100644
--- a/database-api/src/main/java/gaarason/database/annotation/Column.java
+++ b/database-api/src/main/java/gaarason/database/annotation/Column.java
@@ -49,7 +49,7 @@
boolean selectable() default true;
/**
- * 是否插入/更新/条件使用, 当对应策略值为DEFAULT时, 取用
+ * 是否插入/更新/条件使用, 当对应策略值为DEFAULT(未配置)时, 取用本策略
*/
Class extends FieldStrategy> strategy() default FieldStrategy.NotNull.class;
diff --git a/database-query-mysql/pom.xml b/database-query-mysql/pom.xml
index 8252ee3f..f79a7ecd 100644
--- a/database-query-mysql/pom.xml
+++ b/database-query-mysql/pom.xml
@@ -37,7 +37,7 @@
com.google.protobuf
protobuf-java
- 3.20.1
+ 3.20.3
runtime
diff --git a/database-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/database-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 00000000..8e800d3b
--- /dev/null
+++ b/database-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1 @@
+gaarason.database.spring.boot.starter.configurations.GaarasonDatabaseAutoConfiguration
\ No newline at end of file
diff --git a/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlAnnotationTests.java b/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlAnnotationTests.java
index 2bcf44b5..1ed0f7f1 100644
--- a/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlAnnotationTests.java
+++ b/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlAnnotationTests.java
@@ -15,9 +15,6 @@ public class MysqlAnnotationTests extends AnnotationTests {
@BeforeClass
public static void beforeClass() throws IOException {
- DatabaseTypeUtil.setDatabaseTypeToMysql();
- String sqlFilename = Thread.currentThread().getStackTrace()[1].getClass().getResource("/").toString().replace(
- "file:", "") + "../../src/test/java/gaarason/database/test/init/mysql.sql";
- initSql = readToString(sqlFilename);
+ initSql = DatabaseTypeUtil.setDatabaseTypeToMysql();
}
}
diff --git a/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlAsyncTests.java b/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlAsyncTests.java
index 6770f384..17971af5 100644
--- a/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlAsyncTests.java
+++ b/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlAsyncTests.java
@@ -1,7 +1,6 @@
package gaarason.database.test;
import gaarason.database.test.parent.AsyncTests;
-import gaarason.database.test.parent.NullTests;
import gaarason.database.test.utils.DatabaseTypeUtil;
import lombok.extern.slf4j.Slf4j;
import org.junit.BeforeClass;
@@ -16,9 +15,6 @@ public class MysqlAsyncTests extends AsyncTests {
@BeforeClass
public static void beforeClass() throws IOException {
- DatabaseTypeUtil.setDatabaseTypeToMysql();
- String sqlFilename = Thread.currentThread().getStackTrace()[1].getClass().getResource("/").toString().replace(
- "file:", "") + "../../src/test/java/gaarason/database/test/init/mysql.sql";
- initSql = readToString(sqlFilename);
+ initSql = DatabaseTypeUtil.setDatabaseTypeToMysql();
}
}
diff --git a/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlCollectionTests.java b/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlCollectionTests.java
index 304273aa..49033d8e 100644
--- a/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlCollectionTests.java
+++ b/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlCollectionTests.java
@@ -15,9 +15,6 @@ public class MysqlCollectionTests extends CollectionTests {
@BeforeClass
public static void beforeClass() throws IOException {
- DatabaseTypeUtil.setDatabaseTypeToMysql();
- String sqlFilename = Thread.currentThread().getStackTrace()[1].getClass().getResource("/").toString().replace(
- "file:", "") + "../../src/test/java/gaarason/database/test/init/mysql.sql";
- initSql = readToString(sqlFilename);
+ initSql = DatabaseTypeUtil.setDatabaseTypeToMysql();
}
}
diff --git a/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlIncrementTypeTests.java b/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlIncrementTypeTests.java
index 15497a53..1ec39aef 100644
--- a/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlIncrementTypeTests.java
+++ b/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlIncrementTypeTests.java
@@ -18,10 +18,8 @@ public class MysqlIncrementTypeTests extends IncrementTypeTests {
@BeforeClass
public static void beforeClass() throws IOException {
- DatabaseTypeUtil.setDatabaseTypeToMysql();
- String sqlFilename = Thread.currentThread().getStackTrace()[1].getClass().getResource("/").toString().replace(
- "file:", "") + "../../src/test/java/gaarason/database/test/init/mysql.sql";
- initSql = readToString(sqlFilename);
+
+ initSql = DatabaseTypeUtil.setDatabaseTypeToMysql();
}
@Test
diff --git a/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlJsonTests.java b/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlJsonTests.java
index 0de1d458..291010be 100644
--- a/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlJsonTests.java
+++ b/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlJsonTests.java
@@ -15,9 +15,6 @@ public class MysqlJsonTests extends JsonTests {
@BeforeClass
public static void beforeClass() throws IOException {
- DatabaseTypeUtil.setDatabaseTypeToMysql();
- String sqlFilename = Thread.currentThread().getStackTrace()[1].getClass().getResource("/").toString().replace(
- "file:", "") + "../../src/test/java/gaarason/database/test/init/mysql.sql";
- initSql = readToString(sqlFilename);
+ initSql = DatabaseTypeUtil.setDatabaseTypeToMysql();
}
}
diff --git a/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlLocalDateTests.java b/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlLocalDateTests.java
index 51958e71..cc71eab6 100644
--- a/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlLocalDateTests.java
+++ b/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlLocalDateTests.java
@@ -15,9 +15,6 @@ public class MysqlLocalDateTests extends LocalDateTests {
@BeforeClass
public static void beforeClass() throws IOException {
- DatabaseTypeUtil.setDatabaseTypeToMysql();
- String sqlFilename = Thread.currentThread().getStackTrace()[1].getClass().getResource("/").toString().replace(
- "file:", "") + "../../src/test/java/gaarason/database/test/init/mysql.sql";
- initSql = readToString(sqlFilename);
+ initSql = DatabaseTypeUtil.setDatabaseTypeToMysql();
}
}
diff --git a/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlNullTests.java b/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlNullTests.java
index f8d76253..76b42ada 100644
--- a/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlNullTests.java
+++ b/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlNullTests.java
@@ -15,9 +15,6 @@ public class MysqlNullTests extends NullTests {
@BeforeClass
public static void beforeClass() throws IOException {
- DatabaseTypeUtil.setDatabaseTypeToMysql();
- String sqlFilename = Thread.currentThread().getStackTrace()[1].getClass().getResource("/").toString().replace(
- "file:", "") + "../../src/test/java/gaarason/database/test/init/mysql.sql";
- initSql = readToString(sqlFilename);
+ initSql = DatabaseTypeUtil.setDatabaseTypeToMysql();
}
}
diff --git a/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlORMTests.java b/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlORMTests.java
index df9ac9d2..40ae001b 100644
--- a/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlORMTests.java
+++ b/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlORMTests.java
@@ -15,9 +15,6 @@ public class MysqlORMTests extends ORMTests {
@BeforeClass
public static void beforeClass() throws IOException {
- DatabaseTypeUtil.setDatabaseTypeToMysql();
- String sqlFilename = Thread.currentThread().getStackTrace()[1].getClass().getResource("/").toString().replace(
- "file:", "") + "../../src/test/java/gaarason/database/test/init/mysql.sql";
- initSql = readToString(sqlFilename);
+ initSql = DatabaseTypeUtil.setDatabaseTypeToMysql();
}
}
diff --git a/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlQueryBuilderTests.java b/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlQueryBuilderTests.java
index 02d9d3fb..a0a0c163 100644
--- a/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlQueryBuilderTests.java
+++ b/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlQueryBuilderTests.java
@@ -15,9 +15,6 @@ public class MysqlQueryBuilderTests extends QueryBuilderTests {
@BeforeClass
public static void beforeClass() throws IOException {
- DatabaseTypeUtil.setDatabaseTypeToMysql();
- String sqlFilename = Thread.currentThread().getStackTrace()[1].getClass().getResource("/").toString().replace(
- "file:", "") + "../../src/test/java/gaarason/database/test/init/mysql.sql";
- initSql = readToString(sqlFilename);
+ initSql = DatabaseTypeUtil.setDatabaseTypeToMysql();
}
}
diff --git a/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlRelationMorphTests.java b/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlRelationMorphTests.java
index 60b61457..38bb84a9 100644
--- a/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlRelationMorphTests.java
+++ b/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlRelationMorphTests.java
@@ -15,9 +15,6 @@ public class MysqlRelationMorphTests extends RelationMorphTests {
@BeforeClass
public static void beforeClass() throws IOException {
- DatabaseTypeUtil.setDatabaseTypeToMysql();
- String sqlFilename = Thread.currentThread().getStackTrace()[1].getClass().getResource("/").toString().replace(
- "file:", "") + "../../src/test/java/gaarason/database/test/init/mysql.sql";
- initSql = readToString(sqlFilename);
+ initSql = DatabaseTypeUtil.setDatabaseTypeToMysql();
}
}
diff --git a/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlRelationTests.java b/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlRelationTests.java
index f58d7c1d..44ad9cfa 100644
--- a/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlRelationTests.java
+++ b/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlRelationTests.java
@@ -15,9 +15,6 @@ public class MysqlRelationTests extends RelationTests {
@BeforeClass
public static void beforeClass() throws IOException {
- DatabaseTypeUtil.setDatabaseTypeToMysql();
- String sqlFilename = Thread.currentThread().getStackTrace()[1].getClass().getResource("/").toString().replace(
- "file:", "") + "../../src/test/java/gaarason/database/test/init/mysql.sql";
- initSql = readToString(sqlFilename);
+ initSql = DatabaseTypeUtil.setDatabaseTypeToMysql();
}
}
diff --git a/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlScopeTests.java b/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlScopeTests.java
index 268a7c0b..e5f6bd44 100644
--- a/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlScopeTests.java
+++ b/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlScopeTests.java
@@ -10,9 +10,6 @@ public class MysqlScopeTests extends ScopeTests {
@BeforeClass
public static void beforeClass() throws IOException {
- DatabaseTypeUtil.setDatabaseTypeToMysql();
- String sqlFilename = Thread.currentThread().getStackTrace()[1].getClass().getResource("/").toString().replace(
- "file:", "") + "../../src/test/java/gaarason/database/test/init/mysql.sql";
- initSql = readToString(sqlFilename);
+ initSql = DatabaseTypeUtil.setDatabaseTypeToMysql();
}
}
diff --git a/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlSerializableTests.java b/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlSerializableTests.java
index 47721ebe..c1d7f0d3 100644
--- a/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlSerializableTests.java
+++ b/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlSerializableTests.java
@@ -15,9 +15,6 @@ public class MysqlSerializableTests extends SerializableTests {
@BeforeClass
public static void beforeClass() throws IOException {
- DatabaseTypeUtil.setDatabaseTypeToMysql();
- String sqlFilename = Thread.currentThread().getStackTrace()[1].getClass().getResource("/").toString().replace(
- "file:", "") + "../../src/test/java/gaarason/database/test/init/mysql.sql";
- initSql = readToString(sqlFilename);
+ initSql = DatabaseTypeUtil.setDatabaseTypeToMysql();
}
}
diff --git a/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlTransactionTests.java b/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlTransactionTests.java
index d4039ec1..3e7650ec 100644
--- a/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlTransactionTests.java
+++ b/database-tests/database-core-test/src/test/java/gaarason/database/test/MysqlTransactionTests.java
@@ -15,9 +15,6 @@ public class MysqlTransactionTests extends TransactionTests {
@BeforeClass
public static void beforeClass() throws IOException {
- DatabaseTypeUtil.setDatabaseTypeToMysql();
- String sqlFilename = Thread.currentThread().getStackTrace()[1].getClass().getResource("/").toString().replace(
- "file:", "") + "../../src/test/java/gaarason/database/test/init/mysql.sql";
- initSql = readToString(sqlFilename);
+ initSql = DatabaseTypeUtil.setDatabaseTypeToMysql();
}
}
diff --git a/database-tests/database-core-test/src/test/java/gaarason/database/test/models/normal/NullTestModel.java b/database-tests/database-core-test/src/test/java/gaarason/database/test/models/normal/NullTestModel.java
index 34b42b7b..97407442 100644
--- a/database-tests/database-core-test/src/test/java/gaarason/database/test/models/normal/NullTestModel.java
+++ b/database-tests/database-core-test/src/test/java/gaarason/database/test/models/normal/NullTestModel.java
@@ -41,7 +41,9 @@ public static class Entity implements Serializable {
@Column(name = "datetime_column", strategy = FieldStrategy.Always.class)
private LocalDateTime datetimeColumn;
- @Column(name = "timestamp_column", strategy = FieldStrategy.Always.class)
+ // 有部分版本的 mysql 不允许 时间字段为 null
+ // 所以就不用这个字段测试了
+ @Column(name = "timestamp_column", strategy = FieldStrategy.NotNull.class)
private Date timestampColumn;
private boolean isDeleted;
diff --git a/database-tests/database-core-test/src/test/java/gaarason/database/test/parent/NullTests.java b/database-tests/database-core-test/src/test/java/gaarason/database/test/parent/NullTests.java
index 82f153e4..5d26323c 100644
--- a/database-tests/database-core-test/src/test/java/gaarason/database/test/parent/NullTests.java
+++ b/database-tests/database-core-test/src/test/java/gaarason/database/test/parent/NullTests.java
@@ -51,7 +51,7 @@ public void test() {
Assert.assertNull(entity.getDateColumn());
Assert.assertNull(entity.getTimeColumn());
Assert.assertNull(entity.getDatetimeColumn());
- Assert.assertNull(entity.getTimestampColumn());
+// Assert.assertNull(entity.getTimestampColumn());
NullTestModel.Entity forQuery = new NullTestModel.Entity();
forQuery.setId(id);
diff --git a/database-tests/database-core-test/src/test/java/gaarason/database/test/parent/base/BaseTests.java b/database-tests/database-core-test/src/test/java/gaarason/database/test/parent/base/BaseTests.java
index 95ebd4f3..195ba717 100644
--- a/database-tests/database-core-test/src/test/java/gaarason/database/test/parent/base/BaseTests.java
+++ b/database-tests/database-core-test/src/test/java/gaarason/database/test/parent/base/BaseTests.java
@@ -2,6 +2,7 @@
import gaarason.database.contract.connection.GaarasonDataSource;
import gaarason.database.exception.SQLRuntimeException;
+import gaarason.database.test.utils.DatabaseTypeUtil;
import lombok.extern.slf4j.Slf4j;
import org.junit.*;
import org.junit.runners.MethodSorters;
@@ -36,10 +37,12 @@ abstract public class BaseTests {
Map
tableSql = new HashMap<>();
for (TABLE table : TABLE.values()) {
- String sqlFilename = Thread.currentThread().getStackTrace()[1].getClass().getResource("/").toString().replace(
- "file:", "") + "../../src/test/java/gaarason/database/test/init/mysql-"+table.name()+".sql";
+// String sqlFilename = Thread.currentThread().getStackTrace()[1].getClass().getResource("/").toString().replace(
+
+// String sqlFilename = Thread.currentThread().getStackTrace()[1].getClassName().replace(".","/") + "/../../src/test/java/gaarason/database/test/init/mysql-"+table.name()+".sql";
try {
- tableSql.put(table, readToString(sqlFilename).split(";\n"));
+ String sqlFilename = BaseTests.class.getClassLoader().getResource("sql/mysql-"+table.name()+".sql").getFile();
+ tableSql.put(table, DatabaseTypeUtil.readToString(sqlFilename).split(";\n"));
} catch (IOException e) {
throw new RuntimeException(e);
}
diff --git a/database-tests/database-core-test/src/test/java/gaarason/database/test/utils/DatabaseTypeUtil.java b/database-tests/database-core-test/src/test/java/gaarason/database/test/utils/DatabaseTypeUtil.java
index 9184de09..f112ffae 100644
--- a/database-tests/database-core-test/src/test/java/gaarason/database/test/utils/DatabaseTypeUtil.java
+++ b/database-tests/database-core-test/src/test/java/gaarason/database/test/utils/DatabaseTypeUtil.java
@@ -1,6 +1,11 @@
package gaarason.database.test.utils;
import gaarason.database.DatabaseType;
+import gaarason.database.test.MysqlAsyncTests;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
/**
* 数据库类型
@@ -18,12 +23,27 @@ public static DatabaseType getDatabaseType() {
return databaseType;
}
- public static void setDatabaseTypeToMysql() {
+ public static String setDatabaseTypeToMysql() throws IOException {
databaseType = DatabaseType.MYSQL;
+ String sqlFilename = MysqlAsyncTests.class.getClassLoader().getResource("sql/mysql.sql").getFile();
+ return readToString(sqlFilename);
}
- public static void setDatabaseTypeToMssql() {
+ public static String setDatabaseTypeToMssql() throws IOException {
databaseType = DatabaseType.MSSQL;
+ String sqlFilename = MysqlAsyncTests.class.getClassLoader().getResource("sql/mssql.sql").getFile();
+ return readToString(sqlFilename);
}
+ public static String readToString(String fileName) throws IOException {
+ String encoding = "UTF-8";
+ File file = new File(fileName);
+ file.setReadable(true);
+ Long fileLength = file.length();
+ byte[] fileContent = new byte[fileLength.intValue()];
+ FileInputStream in = new FileInputStream(file);
+ in.read(fileContent);
+ in.close();
+ return new String(fileContent, encoding);
+ }
}
diff --git a/database-tests/database-core-test/src/test/java/gaarason/database/test/init/mssql.sql b/database-tests/database-core-test/src/test/resources/sql/mssql.sql
similarity index 100%
rename from database-tests/database-core-test/src/test/java/gaarason/database/test/init/mssql.sql
rename to database-tests/database-core-test/src/test/resources/sql/mssql.sql
diff --git a/database-tests/database-core-test/src/test/java/gaarason/database/test/init/mysql-comment.sql b/database-tests/database-core-test/src/test/resources/sql/mysql-comment.sql
similarity index 100%
rename from database-tests/database-core-test/src/test/java/gaarason/database/test/init/mysql-comment.sql
rename to database-tests/database-core-test/src/test/resources/sql/mysql-comment.sql
diff --git a/database-tests/database-core-test/src/test/java/gaarason/database/test/init/mysql-data_type.sql b/database-tests/database-core-test/src/test/resources/sql/mysql-data_type.sql
similarity index 100%
rename from database-tests/database-core-test/src/test/java/gaarason/database/test/init/mysql-data_type.sql
rename to database-tests/database-core-test/src/test/resources/sql/mysql-data_type.sql
diff --git a/database-tests/database-core-test/src/test/java/gaarason/database/test/init/mysql-datetime_test.sql b/database-tests/database-core-test/src/test/resources/sql/mysql-datetime_test.sql
similarity index 100%
rename from database-tests/database-core-test/src/test/java/gaarason/database/test/init/mysql-datetime_test.sql
rename to database-tests/database-core-test/src/test/resources/sql/mysql-datetime_test.sql
diff --git a/database-tests/database-core-test/src/test/java/gaarason/database/test/init/mysql-image.sql b/database-tests/database-core-test/src/test/resources/sql/mysql-image.sql
similarity index 100%
rename from database-tests/database-core-test/src/test/java/gaarason/database/test/init/mysql-image.sql
rename to database-tests/database-core-test/src/test/resources/sql/mysql-image.sql
diff --git a/database-tests/database-core-test/src/test/java/gaarason/database/test/init/mysql-null_test.sql b/database-tests/database-core-test/src/test/resources/sql/mysql-null_test.sql
similarity index 91%
rename from database-tests/database-core-test/src/test/java/gaarason/database/test/init/mysql-null_test.sql
rename to database-tests/database-core-test/src/test/resources/sql/mysql-null_test.sql
index 5acf4259..0f085ddb 100644
--- a/database-tests/database-core-test/src/test/java/gaarason/database/test/init/mysql-null_test.sql
+++ b/database-tests/database-core-test/src/test/resources/sql/mysql-null_test.sql
@@ -12,7 +12,7 @@ CREATE TABLE `null_test`
`time_column` time DEFAULT NULL COMMENT 'time类型字段',
`date_column` date DEFAULT NULL COMMENT 'date类型字段',
`datetime_column` datetime DEFAULT NULL COMMENT 'datetime类型字段',
- `timestamp_column` timestamp DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT 'timestamp类型字段',
+ `timestamp_column` timestamp ON UPDATE CURRENT_TIMESTAMP COMMENT 'timestamp类型字段',
PRIMARY KEY (`id`)
) ENGINE = InnoDB
AUTO_INCREMENT = 1
diff --git a/database-tests/database-core-test/src/test/java/gaarason/database/test/init/mysql-people.sql b/database-tests/database-core-test/src/test/resources/sql/mysql-people.sql
similarity index 100%
rename from database-tests/database-core-test/src/test/java/gaarason/database/test/init/mysql-people.sql
rename to database-tests/database-core-test/src/test/resources/sql/mysql-people.sql
diff --git a/database-tests/database-core-test/src/test/java/gaarason/database/test/init/mysql-post.sql b/database-tests/database-core-test/src/test/resources/sql/mysql-post.sql
similarity index 100%
rename from database-tests/database-core-test/src/test/java/gaarason/database/test/init/mysql-post.sql
rename to database-tests/database-core-test/src/test/resources/sql/mysql-post.sql
diff --git a/database-tests/database-core-test/src/test/java/gaarason/database/test/init/mysql-relationship_student_teacher.sql b/database-tests/database-core-test/src/test/resources/sql/mysql-relationship_student_teacher.sql
similarity index 100%
rename from database-tests/database-core-test/src/test/java/gaarason/database/test/init/mysql-relationship_student_teacher.sql
rename to database-tests/database-core-test/src/test/resources/sql/mysql-relationship_student_teacher.sql
diff --git a/database-tests/database-core-test/src/test/java/gaarason/database/test/init/mysql-student.sql b/database-tests/database-core-test/src/test/resources/sql/mysql-student.sql
similarity index 100%
rename from database-tests/database-core-test/src/test/java/gaarason/database/test/init/mysql-student.sql
rename to database-tests/database-core-test/src/test/resources/sql/mysql-student.sql
diff --git a/database-tests/database-core-test/src/test/java/gaarason/database/test/init/mysql-super_relation.sql b/database-tests/database-core-test/src/test/resources/sql/mysql-super_relation.sql
similarity index 100%
rename from database-tests/database-core-test/src/test/java/gaarason/database/test/init/mysql-super_relation.sql
rename to database-tests/database-core-test/src/test/resources/sql/mysql-super_relation.sql
diff --git a/database-tests/database-core-test/src/test/java/gaarason/database/test/init/mysql-teacher.sql b/database-tests/database-core-test/src/test/resources/sql/mysql-teacher.sql
similarity index 100%
rename from database-tests/database-core-test/src/test/java/gaarason/database/test/init/mysql-teacher.sql
rename to database-tests/database-core-test/src/test/resources/sql/mysql-teacher.sql
diff --git a/database-tests/database-core-test/src/test/java/gaarason/database/test/init/mysql-test.sql b/database-tests/database-core-test/src/test/resources/sql/mysql-test.sql
similarity index 100%
rename from database-tests/database-core-test/src/test/java/gaarason/database/test/init/mysql-test.sql
rename to database-tests/database-core-test/src/test/resources/sql/mysql-test.sql
diff --git a/database-tests/database-core-test/src/test/java/gaarason/database/test/init/mysql.sql b/database-tests/database-core-test/src/test/resources/sql/mysql.sql
similarity index 100%
rename from database-tests/database-core-test/src/test/java/gaarason/database/test/init/mysql.sql
rename to database-tests/database-core-test/src/test/resources/sql/mysql.sql
diff --git a/database-tests/database-spring-boot3-starter-test/pom.xml b/database-tests/database-spring-boot3-starter-test/pom.xml
new file mode 100644
index 00000000..d47943dc
--- /dev/null
+++ b/database-tests/database-spring-boot3-starter-test/pom.xml
@@ -0,0 +1,47 @@
+
+
+ 4.0.0
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 3.1.5
+
+
+
+ database-spring-boot3-starter-test
+
+
+ 17
+ 17
+ UTF-8
+
+
+
+
+ com.github.gaarason
+ database-common-test
+ 0.0.1-SNAPSHOT
+
+
+ com.github.gaarason
+ database-spring-boot-starter
+ 0.0.1-SNAPSHOT
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+
+
+
+
\ No newline at end of file
diff --git a/database-tests/database-spring-boot3-starter-test/src/main/java/gaarason/database/spring/boot/starter/test/TestApplication.java b/database-tests/database-spring-boot3-starter-test/src/main/java/gaarason/database/spring/boot/starter/test/TestApplication.java
new file mode 100644
index 00000000..d15c0f3b
--- /dev/null
+++ b/database-tests/database-spring-boot3-starter-test/src/main/java/gaarason/database/spring/boot/starter/test/TestApplication.java
@@ -0,0 +1,16 @@
+package gaarason.database.spring.boot.starter.test;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+import java.util.concurrent.CountDownLatch;
+
+@SpringBootApplication
+@EnableTransactionManagement
+public class TestApplication {
+ public static void main(String[] args) throws InterruptedException {
+ SpringApplication.run(TestApplication.class, args);
+ new CountDownLatch(1).await();
+ }
+}
\ No newline at end of file
diff --git a/database-tests/database-spring-boot3-starter-test/src/main/java/gaarason/database/spring/boot/starter/test/data/entity/DataType.java b/database-tests/database-spring-boot3-starter-test/src/main/java/gaarason/database/spring/boot/starter/test/data/entity/DataType.java
new file mode 100644
index 00000000..4f20f0d2
--- /dev/null
+++ b/database-tests/database-spring-boot3-starter-test/src/main/java/gaarason/database/spring/boot/starter/test/data/entity/DataType.java
@@ -0,0 +1,156 @@
+package gaarason.database.spring.boot.starter.test.data.entity;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import gaarason.database.annotation.Column;
+import gaarason.database.annotation.Primary;
+import gaarason.database.annotation.Table;
+import gaarason.database.contract.support.FieldConversion;
+import gaarason.database.contract.support.FieldStrategy;
+import gaarason.database.lang.Nullable;
+import gaarason.database.spring.boot.starter.test.data.model.base.BaseModel;
+import lombok.Data;
+import org.springframework.stereotype.Repository;
+
+import java.io.Serializable;
+import java.lang.reflect.Field;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.Date;
+
+@Data
+@Table(name = "data_type")
+public class DataType implements Serializable {
+
+ @Primary()
+ @Column(name = "id", unsigned = true)
+ private Long id;
+
+ @Column(name = "name", length = 20, comment = "姓名")
+ private String name;
+
+ @Column(name = "age", unsigned = true, comment = "年龄")
+ private Integer age;
+
+ @Column(name = "sex", unsigned = true, comment = "性别1男2女")
+ private Integer sex;
+
+ @Column(name = "subject", length = 20, comment = "科目")
+ private String subject;
+
+ @Column(name = "created_at", insertStrategy = FieldStrategy.Never.class, updateStrategy = FieldStrategy.Never.class, comment = "新增时间")
+ private Date createdAt;
+
+ @Column(name = "updated_at", insertStrategy = FieldStrategy.Never.class, updateStrategy = FieldStrategy.Never.class, comment = "更新时间")
+ private Date updatedAt;
+
+ @Column(name = "created_time")
+ private Date createdTime;
+
+ @Column(name = "updated_time")
+ private Date updatedTime;
+
+ @Column(name = "is_deleted")
+ private Boolean isDeleted;
+
+ @Column(name = "char_char")
+ private String charChar;
+
+ @Column(name = "integer")
+ private Integer integer;
+
+ @Column(name = "numeric")
+ private String numeric;
+
+ @Column(name = "bigint")
+ private Long bigint;
+
+ @Column(name = "binary", length = 0)
+ private String binary;
+
+ @Column(name = "bit")
+ private Boolean bit;
+
+ @Column(name = "blob", length = 65535)
+ private Byte[] blob;
+
+ @Column(name = "date")
+ private Date date;
+
+ @Column(name = "decimal")
+ private String decimal;
+
+ @Column(name = "double_d")
+ private String doubleD;
+
+ @Column(name = "point")
+ private String point;
+
+ @Column(name = "linestring")
+ private String linestring;
+
+ @Column(name = "geometry")
+ private String geometry;
+
+ @Column(name = "text", length = 65535, conversion = JsonFieldConversion.class)
+ private Info text;
+
+ /** auto generator end **/
+
+ @Data
+ public static class Info {
+ private String school;
+ private String country;
+ }
+
+
+ public static class JsonFieldConversion implements FieldConversion