This is an automated email from the ASF dual-hosted git repository.

duanzhengqiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new e1b9bc96ac7 Bump the minimum GraalVM CE version required to compile 
ShardingSphere's GraalVM Native Image artifacts to JDK22 (#31630)
e1b9bc96ac7 is described below

commit e1b9bc96ac7c26a960528cd4e3042647402a38bc
Author: Ling Hengqian <[email protected]>
AuthorDate: Fri Jun 7 22:17:41 2024 +0800

    Bump the minimum GraalVM CE version required to compile ShardingSphere's 
GraalVM Native Image artifacts to JDK22 (#31630)
---
 .github/workflows/graalvm.yml                      |   2 +-
 .github/workflows/nightly-ci.yml                   |   2 +-
 distribution/proxy-native/pom.xml                  |   3 -
 .../graalvm-native-image/_index.cn.md              |  17 +++-
 .../graalvm-native-image/_index.en.md              |  13 ++-
 .../startup/graalvm-native-image.cn.md             |  12 +--
 .../startup/graalvm-native-image.en.md             |  12 +--
 .../infra/expr/espresso/ReflectContext.java        |   2 -
 .../reflect-config.json                            | 104 +++++++++++++++++----
 .../resource-config.json                           |  51 ++++++++++
 pom.xml                                            |   6 --
 test/native/native-image-filter/extra-filter.json  |   2 +-
 .../natived/jdbc/commons/TestShardingService.java  |  21 +++--
 .../jdbc/commons/repository/AddressRepository.java |   6 +-
 .../commons/repository/OrderItemRepository.java    |  21 ++---
 .../jdbc/commons/repository/OrderRepository.java   |  12 ++-
 .../natived/jdbc/databases/ClickHouseTest.java     |   8 +-
 .../test/natived/jdbc/databases/MySQLTest.java     |  17 ++--
 .../test/natived/jdbc/databases/OpenGaussTest.java |  17 ++--
 .../test/natived/jdbc/databases/PostgresTest.java  |   2 +-
 .../test/natived/jdbc/features/EncryptTest.java    |   2 +-
 .../test/natived/jdbc/features/MaskTest.java       |   2 +-
 .../jdbc/features/ReadWriteSplittingTest.java      |   2 +-
 .../test/natived/jdbc/features/ShadowTest.java     |   2 +-
 .../test/natived/jdbc/features/ShardingTest.java   |   2 +-
 .../test/natived/jdbc/modes/cluster/EtcdTest.java  |  24 +----
 .../natived/jdbc/modes/cluster/ZookeeperTest.java  |   2 +-
 .../natived/jdbc/transactions/base/SeataTest.java  |   2 +-
 .../natived/jdbc/transactions/xa/AtomikosTest.java |   2 +-
 .../natived/jdbc/transactions/xa/NarayanaTest.java |   2 +-
 30 files changed, 238 insertions(+), 134 deletions(-)

diff --git a/.github/workflows/graalvm.yml b/.github/workflows/graalvm.yml
index 1d769972ebd..ae2b45f359c 100644
--- a/.github/workflows/graalvm.yml
+++ b/.github/workflows/graalvm.yml
@@ -45,7 +45,7 @@ jobs:
       fail-fast: false
       matrix:
         os: [ 'ubuntu-latest' ]
-        java-version: [ '21.0.2' ]
+        java-version: [ '22.0.1' ]
     steps:
       - uses: actions/checkout@v4
       - uses: graalvm/setup-graalvm@v1
diff --git a/.github/workflows/nightly-ci.yml b/.github/workflows/nightly-ci.yml
index c81c5350f3a..77ab6cdaf6f 100644
--- a/.github/workflows/nightly-ci.yml
+++ b/.github/workflows/nightly-ci.yml
@@ -115,7 +115,7 @@ jobs:
       - uses: actions/checkout@v4
       - uses: graalvm/setup-graalvm@v1
         with:
-          java-version: '21.0.2'
+          java-version: '22.0.1'
           distribution: 'graalvm-community'
           github-token: ${{ secrets.GITHUB_TOKEN }}
       - uses: actions/cache@v4
diff --git a/distribution/proxy-native/pom.xml 
b/distribution/proxy-native/pom.xml
index 47da6f62bf6..222eafaccb7 100644
--- a/distribution/proxy-native/pom.xml
+++ b/distribution/proxy-native/pom.xml
@@ -76,9 +76,6 @@
     <profiles>
         <profile>
             <id>release.native</id>
-            <properties>
-                <java.version>21</java.version>
-            </properties>
             <build>
                 <finalName>apache-shardingsphere-${project.version}</finalName>
                 <plugins>
diff --git 
a/docs/document/content/user-manual/shardingsphere-jdbc/graalvm-native-image/_index.cn.md
 
b/docs/document/content/user-manual/shardingsphere-jdbc/graalvm-native-image/_index.cn.md
index 86607d1f83a..46339c7bd39 100644
--- 
a/docs/document/content/user-manual/shardingsphere-jdbc/graalvm-native-image/_index.cn.md
+++ 
b/docs/document/content/user-manual/shardingsphere-jdbc/graalvm-native-image/_index.cn.md
@@ -13,10 +13,17 @@ Image,你需要借助于 GraalVM Native Build Tools。GraalVM Native 
Build Too
 CE 的 `native-image` 命令行工具的长篇大论的 shell 命令。
 
 ShardingSphere JDBC 要求在如下或更高版本的 `GraalVM CE` 完成构建 GraalVM Native Image。使用者可通过 
SDKMAN! 快速切换 JDK。这同理
-适用于 `Oracle GraalVM`, `Liberica Native Image Kit` 和 `Mandrel` 等 `GraalVM CE` 
的下游发行版。
+适用于 `Oracle GraalVM`, `Liberica NIK` 和 `Mandrel` 等 `GraalVM CE` 的下游发行版。
 
-- GraalVM CE 23.1.2 For JDK 21.0.2,对应于 SDKMAN! 的 `21.0.2-graalce`
-- GraalVM CE 24.0.0 For JDK 22,对应于 SDKMAN! 的 `22-graalce`
+- GraalVM CE For JDK 22.0.1,对应于 SDKMAN! 的 `22.0.1-graalce`
+- Oracle GraalVM For JDK 22.0.1,对应于 SDKMAN! 的 `22.0.1-graal`
+- Liberica NIK For JDK 22.0.1,对应于 SDKMAN! 的 `24.0.1.r22-nik`
+- Mandrel For JDK 22.0.1,对应于 SDKMAN! 的 `24.0.1.r22-mandrel`
+
+用户依然可以使用 SDKMAN! 上的 `21.0.2-graalce` 等旧版本的 GraalVM CE 来构建 ShardingSphere 的 
GraalVM Native Image 产物。
+但这将导致集成部分第三方依赖时,构建 GraalVM Native Image 失败。
+典型的例子来自 HiveServer2 JDBC Driver 相关的 
`org.apache.hive:hive-jdbc:4.0.0`,HiveServer2 JDBC Driver 使用了 AWT 相关的类,
+而 GraalVM CE 对 `java.beans.**` package 的支持仅位于 GraalVM CE For JDK22 及更高版本。
 
 ### Maven 生态
 
@@ -309,8 +316,8 @@ ShardingSphere 定义了 `nativeTestInShardingSphere` 的 Maven 
Profile 用于
 sudo apt install unzip zip curl sed -y
 curl -s "https://get.sdkman.io"; | bash
 source "$HOME/.sdkman/bin/sdkman-init.sh"
-sdk install java 21.0.2-graalce
-sdk use java 21.0.2-graalce
+sdk install java 22.0.1-graalce
+sdk use java 22.0.1-graalce
 sudo apt-get install build-essential libz-dev zlib1g-dev -y
 
 git clone [email protected]:apache/shardingsphere.git
diff --git 
a/docs/document/content/user-manual/shardingsphere-jdbc/graalvm-native-image/_index.en.md
 
b/docs/document/content/user-manual/shardingsphere-jdbc/graalvm-native-image/_index.en.md
index 9dc087c94a7..3579f37a5a3 100644
--- 
a/docs/document/content/user-manual/shardingsphere-jdbc/graalvm-native-image/_index.en.md
+++ 
b/docs/document/content/user-manual/shardingsphere-jdbc/graalvm-native-image/_index.en.md
@@ -13,11 +13,18 @@ Image, you need to resort to GraalVM Native Build Tools. 
GraalVM Native Build To
 to simplify long list of shell commands for GraalVM CE's `native-image` 
command line tool.
 
 ShardingSphere JDBC requires GraalVM Native Image to be built with GraalVM CE 
as follows or higher. Users can quickly switch 
-JDK through `SDKMAN!`. Same reason applicable to downstream distributions of 
`GraalVM CE` such as `Oracle GraalVM`, `Liberica Native Image Kit` 
+JDK through `SDKMAN!`. Same reason applicable to downstream distributions of 
`GraalVM CE` such as `Oracle GraalVM`, `Liberica NIK` 
 and `Mandrel`.
 
-- GraalVM CE 23.1.2 For JDK 21.0.2, corresponding to `21.0.2-graalce` of 
SDKMAN!
-- GraalVM CE 24.0.0 For JDK 22, corresponding to `22-graalce` of SDKMAN!
+- GraalVM CE For JDK 22.0.1, corresponding to `21.0.2-graalce` of SDKMAN!
+- Oracle GraalVM For JDK 22.0.1, corresponding to `22.0.1-graal` of SDKMAN!
+- Liberica NIK For JDK 22.0.1, corresponding to `24.0.1.r22-nik` of SDKMAN!
+- Mandrel For JDK 22.0.1, corresponding to `24.0.1.r22-mandrel` of SDKMAN!
+
+Users can still use the old versions of GraalVM CE such as `21.0.2-graalce` on 
SDKMAN! to build the GraalVM Native Image product of ShardingSphere. 
+However, this will cause the failure of building the GraalVM Native Image when 
integrating some third-party dependencies. 
+A typical example is related to the `org.apache.hive:hive-jdbc:4.0.0` 
HiveServer2 JDBC Driver, which uses AWT-related classes. 
+GraalVM CE only supports AWT for GraalVM CE For JDK22 and higher versions.
 
 ### Maven Ecology
 
diff --git 
a/docs/document/content/user-manual/shardingsphere-proxy/startup/graalvm-native-image.cn.md
 
b/docs/document/content/user-manual/shardingsphere-proxy/startup/graalvm-native-image.cn.md
index cd18099e344..914bc949a8b 100644
--- 
a/docs/document/content/user-manual/shardingsphere-proxy/startup/graalvm-native-image.cn.md
+++ 
b/docs/document/content/user-manual/shardingsphere-proxy/startup/graalvm-native-image.cn.md
@@ -31,14 +31,14 @@ services:
 
 ## 前提条件
 
-1. 根据 https://www.graalvm.org/downloads/ 要求安装和配置 JDK 21 对应的 `GraalVM Community 
Edition`
+1. 根据 https://www.graalvm.org/downloads/ 要求安装和配置 JDK 22 对应的 `GraalVM Community 
Edition`
    或 `GraalVM Community Edition` 的下游发行版。若使用 `SDKMAN!`,
 
 ```shell
-sdk install java 21.0.2-graalce
+sdk install java 22.0.1-graalce
 ```
 
-2. 根据 
https://www.graalvm.org/jdk21/reference-manual/native-image/#prerequisites 
的要求安装本地工具链。
+2. 根据 
https://www.graalvm.org/jdk22/reference-manual/native-image/#prerequisites 
的要求安装本地工具链。
 
 3. 如果需要构建 Docker Image, 确保 `docker-ce` 已安装。
 
@@ -56,7 +56,7 @@ sdk install java 21.0.2-graalce
 - 在 Git Source 同级目录下执行如下命令, 直接完成 Native Image 的构建。
 
 ```bash
-./mvnw -am -pl distribution/proxy-native -B -T1C -Prelease.native -DskipTests 
clean package
+./mvnw -am -pl distribution/proxy-native -T1C -Prelease.native -DskipTests 
clean package
 ```
 
 - 情形二:需要使用存在 SPI 实现的 JAR 或 GPL V2 等 LICENSE 的第三方依赖的 JAR。
@@ -113,7 +113,7 @@ services:
 
 - 如果你不对 Git Source 做任何更改, 上文提及的命令将使用 `oraclelinux:9-slim` 作为 Base Docker Image。
   但如果你希望使用 `busybox:glic`,`gcr.io/distroless/base` 或 `scratch` 等更小体积的 Docker 
Image 作为 Base Docker
-  Image,你需要根据 
https://www.graalvm.org/jdk21/reference-manual/native-image/guides/build-static-executables/
 的要求,
+  Image,你需要根据 
https://www.graalvm.org/jdk22/reference-manual/native-image/guides/build-static-executables/
 的要求,
   做为 `pom.xml`的 `native profile` 添加 `-H:+StaticExecutableWithDynamicLibC` 的 
`jvmArgs` 等操作。
   另请注意,某些第三方依赖将需要在 `Dockerfile` 安装更多系统库,例如 `libdl`。
   因此请确保根据你的使用情况调整 `distribution/proxy-native` 下的 `pom.xml` 和 `Dockerfile` 的内容。
@@ -123,7 +123,7 @@ services:
 针对 GraalVM Native Image 形态的 ShardingSphere Proxy,其提供的可观察性的能力与
 
https://shardingsphere.apache.org/document/current/cn/user-manual/shardingsphere-proxy/observability/
 并不一致。
 
-你可以使用 https://www.graalvm.org/jdk21/tools/ 提供的一系列命令行工具或可视化工具观察 GraalVM Native 
Image 的内部行为,
+你可以使用 https://www.graalvm.org/jdk22/tools/ 提供的一系列命令行工具或可视化工具观察 GraalVM Native 
Image 的内部行为,
 并根据其要求使用 VSCode 完成调试工作。如果你正在使用 IntelliJ IDEA 并且希望调试生成的 GraalVM Native 
Image,你可以关注
 
https://blog.jetbrains.com/idea/2022/06/intellij-idea-2022-2-eap-5/#Experimental_GraalVM_Native_Debugger_for_Java
 及其后继。如果你使用的不是 Linux,则无法对 GraalVM Native Image 进行 Debug,请关注尚未关闭的
diff --git 
a/docs/document/content/user-manual/shardingsphere-proxy/startup/graalvm-native-image.en.md
 
b/docs/document/content/user-manual/shardingsphere-proxy/startup/graalvm-native-image.en.md
index 4ea3b381e45..1368ece9cad 100644
--- 
a/docs/document/content/user-manual/shardingsphere-proxy/startup/graalvm-native-image.en.md
+++ 
b/docs/document/content/user-manual/shardingsphere-proxy/startup/graalvm-native-image.en.md
@@ -34,13 +34,13 @@ services:
 ## Premise
 
 1. Install and configure `GraalVM Community Edition` or a downstream 
distribution of `GraalVM Community Edition` for 
-JDK 21 according to https://www.graalvm.org/downloads/. If `SDKMAN!` is used,
+JDK 22 according to https://www.graalvm.org/downloads/. If `SDKMAN!` is used,
 
 ```shell
-sdk install java 21.0.2-graalce
+sdk install java 22.0.1-graalce
 ```
 
-2. Install the local toolchain as required by 
https://www.graalvm.org/jdk21/reference-manual/native-image/#prerequisites.
+2. Install the local toolchain as required by 
https://www.graalvm.org/jdk22/reference-manual/native-image/#prerequisites.
 
 3. If you need to build a Docker Image, make sure `docker-ce` is installed.
 
@@ -99,7 +99,7 @@ sdk install java 21.0.2-graalce
    exist for SPI implementation or third-party dependencies.
 
 ```shell
-./mvnw -am -pl distribution/proxy-native -B -T1C 
-Prelease.native,docker.native -DskipTests clean package
+./mvnw -am -pl distribution/proxy-native -T1C -Prelease.native,docker.native 
-DskipTests clean package
 ```
 
 - Assuming that there is a `conf` folder containing `global.yaml` as 
`./custom/conf`, you can start the Docker Image
@@ -120,7 +120,7 @@ services:
 - If you don't make any changes to the Git Source, the commands mentioned 
above will use `oraclelinux:9-slim` as the
   Base Docker Image. But if you want to use a smaller Docker Image like 
`busybox:glic`, `gcr.io/distroless/base` or
   `scratch` as the Base Docker Image, you need according
-  to 
https://www.graalvm.org/jdk21/reference-manual/native-image/guides/build-static-executables/,
+  to 
https://www.graalvm.org/jdk22/reference-manual/native-image/guides/build-static-executables/,
   add operations such as `-H:+StaticExecutableWithDynamicLibC` to `jvmArgs` as 
the `native profile` of `pom.xml`.
   Also note that some 3rd-party dependencies will require more system 
libraries such as `libdl` to be installed in
   the `Dockerfile`. So make sure to tune `distribution/proxy-native` according 
to your usage `pom.xml` and `Dockerfile`
@@ -133,7 +133,7 @@ with 
https://shardingsphere.apache.org/document/current/cn/user-manual/shardings
 not consistent.
 
 You can observe GraalVM Native Image using a series of command line tools or 
visualization tools available
-at https://www.graalvm.org/jdk21/tools/, and use VSCode to debug it according 
to its requirements.
+at https://www.graalvm.org/jdk22/tools/, and use VSCode to debug it according 
to its requirements.
 If you are using IntelliJ IDEA and want to debug the generated GraalVM Native 
Image, You can follow
 
https://blog.jetbrains.com/idea/2022/06/intellij-idea-2022-2-eap-5/#Experimental_GraalVM_Native_Debugger_for_Java
 and its successors. If you are not using Linux, you cannot debug GraalVM 
Native Image, please pay attention
diff --git 
a/infra/expr/type/espresso/src/main/java/org/apache/shardingsphere/infra/expr/espresso/ReflectContext.java
 
b/infra/expr/type/espresso/src/main/java/org/apache/shardingsphere/infra/expr/espresso/ReflectContext.java
index 0f93936f703..d9066fd9223 100644
--- 
a/infra/expr/type/espresso/src/main/java/org/apache/shardingsphere/infra/expr/espresso/ReflectContext.java
+++ 
b/infra/expr/type/espresso/src/main/java/org/apache/shardingsphere/infra/expr/espresso/ReflectContext.java
@@ -31,7 +31,6 @@ public final class ReflectContext implements AutoCloseable {
     
     /**
      * This method is a simulation of the following operation.
-     * // CHECKSTYLE:OFF
      * <pre class="code">
      * private final Context context = Context.newBuilder("java")
      *             .allowAllAccess(true)
@@ -39,7 +38,6 @@ public final class ReflectContext implements AutoCloseable {
      *             .option("java.Classpath", JAVA_CLASSPATH)
      *             .build();
      * </pre>
-     * // CHECKSTYLE:ON
      * TODO <a 
href="https://github.com/oracle/graal/issues/4555";>oracle/graal#4555</a> not 
yet closed.
      * Maybe sometimes shardingsphere need 
`.option("java.Properties.org.graalvm.home", System.getenv("JAVA_HOME")).
      *
diff --git 
a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/reflect-config.json
 
b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/reflect-config.json
index 50dce54f451..9340b35d3be 100644
--- 
a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/reflect-config.json
+++ 
b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/reflect-config.json
@@ -1,4 +1,8 @@
 [
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory"},
+  "name":"JdkLogger"
+},
 {
   
"condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.standalone.jdbc.sql.JDBCRepositorySQLLoader"},
   "name":"[Lcom.fasterxml.jackson.databind.deser.BeanDeserializerModifier;"
@@ -7,6 +11,10 @@
   
"condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.standalone.jdbc.sql.JDBCRepositorySQLLoader"},
   "name":"[Lcom.fasterxml.jackson.databind.ser.BeanSerializerModifier;"
 },
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory"},
+  "name":"[Lcom.github.dockerjava.api.model.VolumesFrom;"
+},
 {
   
"condition":{"typeReachable":"org.apache.shardingsphere.infra.datasource.pool.CatalogSwitchableDataSource"},
   "name":"[Lcom.zaxxer.hikari.util.ConcurrentBag$IConcurrentBagEntry;"
@@ -16,11 +24,11 @@
   "name":"[Lcom.zaxxer.hikari.util.ConcurrentBag$IConcurrentBagEntry;"
 },
 {
-  
"condition":{"typeReachable":"org.apache.shardingsphere.infra.database.DatabaseTypeEngine"},
-  "name":"[Ljava.sql.Statement;"
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory"},
+  "name":"[Ljava.lang.String;"
 },
 {
-  
"condition":{"typeReachable":"org.apache.shardingsphere.infra.state.datasource.DataSourceStateManager"},
+  
"condition":{"typeReachable":"org.apache.shardingsphere.infra.database.DatabaseTypeEngine"},
   "name":"[Ljava.sql.Statement;"
 },
 {
@@ -92,10 +100,6 @@
   
"condition":{"typeReachable":"org.apache.shardingsphere.infra.database.DatabaseTypeEngine"},
   "name":"org.apache.shardingsphere.driver.ShardingSphereDriver"
 },
-{
-  
"condition":{"typeReachable":"org.apache.shardingsphere.infra.state.datasource.DataSourceStateManager"},
-  "name":"org.apache.shardingsphere.driver.ShardingSphereDriver"
-},
 {
   
"condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.standalone.jdbc.JDBCRepository"},
   "name":"org.apache.shardingsphere.driver.ShardingSphereDriver"
@@ -364,6 +368,10 @@
   
"condition":{"typeReachable":"org.apache.shardingsphere.infra.datasource.pool.creator.DataSourcePoolReflection"},
   
"name":"org.apache.shardingsphere.infra.database.mysql.connector.MySQLConnectionPropertiesParser"
 },
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement"},
+  
"name":"org.apache.shardingsphere.infra.database.mysql.keygen.MySQLGeneratedKeyColumnProvider"
+},
 {
   
"condition":{"typeReachable":"org.apache.shardingsphere.infra.database.core.metadata.data.loader.MetaDataLoader"},
   
"name":"org.apache.shardingsphere.infra.database.mysql.metadata.data.loader.MySQLMetaDataLoader"
@@ -572,7 +580,7 @@
   "queryAllDeclaredMethods":true
 },
 {
-  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.subsciber.EventSubscriberRegistry$$Lambda/0x00007ffa03398208"},
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.subsciber.EventSubscriberRegistry$$Lambda/0x00007fce3b398818"},
   "name":"org.apache.shardingsphere.infra.util.eventbus.EventSubscriber"
 },
 {
@@ -894,28 +902,32 @@
 },
 {
   
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.GovernanceWatcherFactory"},
-  
"name":"org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.data.ShardingSphereDataChangedWatcher"
+  
"name":"org.apache.shardingsphere.mode.manager.cluster.coordinator.listener.watch.ListenerAssistedChangedWatcher"
 },
 {
   
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.GovernanceWatcherFactory"},
-  
"name":"org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.metadata.watcher.MetaDataChangedWatcher"
+  
"name":"org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.data.ShardingSphereDataChangedWatcher"
 },
 {
   
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.GovernanceWatcherFactory"},
-  
"name":"org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.status.cluster.watcher.ClusterStateChangedWatcher"
+  
"name":"org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.nodes.compute.online.watcher.ComputeNodeOnlineWatcher"
+},
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.ClusterContextManagerBuilder"},
+  
"name":"org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.nodes.storage.subscriber.internal.QualifiedDataSourceStatusSubscriber",
+  "queryAllDeclaredMethods":true
 },
 {
   
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.GovernanceWatcherFactory"},
-  
"name":"org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.status.compute.watcher.ComputeNodeStateChangedWatcher"
+  
"name":"org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.nodes.storage.watcher.QualifiedDataSourceWatcher"
 },
 {
-  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.ClusterContextManagerBuilder"},
-  
"name":"org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.status.storage.subscriber.QualifiedDataSourceStatusSubscriber",
-  "queryAllDeclaredMethods":true
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.GovernanceWatcherFactory"},
+  
"name":"org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.status.cluster.watcher.ClusterStateChangedWatcher"
 },
 {
   
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.GovernanceWatcherFactory"},
-  
"name":"org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.status.storage.watcher.QualifiedDataSourceChangedWatcher"
+  
"name":"org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.status.compute.watcher.ComputeNodeStateChangedWatcher"
 },
 {
   
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.GovernanceWatcherFactory"},
@@ -930,6 +942,14 @@
   
"name":"org.apache.shardingsphere.mode.manager.cluster.coordinator.subscriber.CacheEvictedSubscriber",
   
"methods":[{"name":"onGovernanceEvent","parameterTypes":["org.apache.shardingsphere.infra.rule.event.GovernanceEvent"]
 }]
 },
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.eventbus.EventBusContext"},
+  
"name":"org.apache.shardingsphere.mode.manager.cluster.coordinator.subscriber.ResourceMetaDataChangedSubscriber"
+},
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.coordinator.listener.MetaDataChangedListener$$Lambda/0x00007fce3b8eaca0"},
+  
"name":"org.apache.shardingsphere.mode.manager.cluster.coordinator.subscriber.ResourceMetaDataChangedSubscriber"
+},
 {
   
"condition":{"typeReachable":"org.apache.shardingsphere.mode.service.PersistServiceFacade"},
   
"name":"org.apache.shardingsphere.mode.manager.cluster.service.ClusterPersistServiceBuilder",
@@ -952,6 +972,58 @@
   
"condition":{"typeReachable":"org.apache.shardingsphere.infra.yaml.config.swapper.mode.YamlModeConfigurationSwapper"},
   
"name":"org.apache.shardingsphere.mode.manager.standalone.yaml.StandaloneYamlPersistRepositoryConfigurationSwapper"
 },
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.MetaDataRefreshEngine"},
+  
"name":"org.apache.shardingsphere.mode.metadata.refresher.type.index.AlterIndexStatementSchemaRefresher"
+},
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.MetaDataRefreshEngine"},
+  
"name":"org.apache.shardingsphere.mode.metadata.refresher.type.index.CreateIndexStatementSchemaRefresher"
+},
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.MetaDataRefreshEngine"},
+  
"name":"org.apache.shardingsphere.mode.metadata.refresher.type.index.DropIndexStatementSchemaRefresher"
+},
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.MetaDataRefreshEngine"},
+  
"name":"org.apache.shardingsphere.mode.metadata.refresher.type.schema.AlterSchemaStatementSchemaRefresher"
+},
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.MetaDataRefreshEngine"},
+  
"name":"org.apache.shardingsphere.mode.metadata.refresher.type.schema.CreateSchemaStatementSchemaRefresher"
+},
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.MetaDataRefreshEngine"},
+  
"name":"org.apache.shardingsphere.mode.metadata.refresher.type.schema.DropSchemaStatementSchemaRefresher"
+},
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.MetaDataRefreshEngine"},
+  
"name":"org.apache.shardingsphere.mode.metadata.refresher.type.table.AlterTableStatementSchemaRefresher"
+},
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.MetaDataRefreshEngine"},
+  
"name":"org.apache.shardingsphere.mode.metadata.refresher.type.table.CreateTableStatementSchemaRefresher"
+},
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.MetaDataRefreshEngine"},
+  
"name":"org.apache.shardingsphere.mode.metadata.refresher.type.table.DropTableStatementSchemaRefresher"
+},
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.MetaDataRefreshEngine"},
+  
"name":"org.apache.shardingsphere.mode.metadata.refresher.type.table.RenameTableStatementSchemaRefresher"
+},
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.MetaDataRefreshEngine"},
+  
"name":"org.apache.shardingsphere.mode.metadata.refresher.type.view.AlterViewStatementSchemaRefresher"
+},
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.MetaDataRefreshEngine"},
+  
"name":"org.apache.shardingsphere.mode.metadata.refresher.type.view.CreateViewStatementSchemaRefresher"
+},
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.MetaDataRefreshEngine"},
+  
"name":"org.apache.shardingsphere.mode.metadata.refresher.type.view.DropViewStatementSchemaRefresher"
+},
 {
   
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.ClusterContextManagerBuilder"},
   
"name":"org.apache.shardingsphere.mode.repository.cluster.etcd.EtcdRepository",
diff --git 
a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/resource-config.json
 
b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/resource-config.json
index e9293e80b97..a3789763eda 100644
--- 
a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/resource-config.json
+++ 
b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/resource-config.json
@@ -54,6 +54,18 @@
   }, {
     
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.xa.atomikos.manager.AtomikosTransactionManagerProvider"},
     "pattern":"\\QMETA-INF/services/com.atomikos.recovery.OltpLogFactory\\E"
+  }, {
+    
"condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory"},
+    "pattern":"\\QMETA-INF/services/com.clickhouse.client.ClickHouseClient\\E"
+  }, {
+    
"condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory"},
+    
"pattern":"\\QMETA-INF/services/com.clickhouse.client.ClickHouseRequestManager\\E"
+  }, {
+    
"condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory"},
+    
"pattern":"\\QMETA-INF/services/com.clickhouse.data.ClickHouseDataStreamFactory\\E"
+  }, {
+    
"condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory"},
+    "pattern":"\\QMETA-INF/services/com.clickhouse.jdbc.JdbcTypeMapping\\E"
   }, {
     
"condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.cluster.etcd.EtcdRepository"},
     "pattern":"\\QMETA-INF/services/io.grpc.LoadBalancerProvider\\E"
@@ -99,6 +111,9 @@
   }, {
     
"condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.standalone.jdbc.JDBCRepository"},
     "pattern":"\\QMETA-INF/services/java.time.zone.ZoneRulesProvider\\E"
+  }, {
+    
"condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory"},
+    "pattern":"\\QMETA-INF/services/javax.xml.datatype.DatatypeFactory\\E"
   }, {
     
"condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.standalone.jdbc.sql.JDBCRepositorySQLLoader"},
     "pattern":"\\QMETA-INF/services/javax.xml.stream.XMLInputFactory\\E"
@@ -123,6 +138,9 @@
   }, {
     
"condition":{"typeReachable":"org.apache.shardingsphere.infra.datasource.pool.creator.DataSourcePoolReflection"},
     
"pattern":"\\QMETA-INF/services/org.apache.shardingsphere.infra.database.core.connector.ConnectionPropertiesParser\\E"
+  }, {
+    
"condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement"},
+    
"pattern":"\\QMETA-INF/services/org.apache.shardingsphere.infra.database.core.keygen.GeneratedKeyColumnProvider\\E"
   }, {
     
"condition":{"typeReachable":"org.apache.shardingsphere.infra.database.core.metadata.data.loader.MetaDataLoader"},
     
"pattern":"\\QMETA-INF/services/org.apache.shardingsphere.infra.database.core.metadata.data.loader.DialectMetaDataLoader\\E"
@@ -201,6 +219,9 @@
   }, {
     
"condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource"},
     
"pattern":"\\QMETA-INF/services/org.apache.shardingsphere.mode.manager.listener.ContextManagerLifecycleListener\\E"
+  }, {
+    
"condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.MetaDataRefreshEngine"},
+    
"pattern":"\\QMETA-INF/services/org.apache.shardingsphere.mode.metadata.refresher.MetaDataRefresher\\E"
   }, {
     
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.ClusterContextManagerBuilder"},
     
"pattern":"\\QMETA-INF/services/org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepository\\E"
@@ -234,6 +255,12 @@
   }, {
     
"condition":{"typeReachable":"org.apache.shardingsphere.infra.expr.groovy.GroovyInlineExpressionParser"},
     
"pattern":"\\QMETA-INF/services/org.codehaus.groovy.runtime.ExtensionModule\\E"
+  }, {
+    
"condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory"},
+    
"pattern":"\\QMETA-INF/services/org.testcontainers.containers.JdbcDatabaseContainerProvider\\E"
+  }, {
+    
"condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory"},
+    
"pattern":"\\QMETA-INF/services/org.testcontainers.core.CreateContainerCmdModifier\\E"
   }, {
     
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
     "pattern":"\\Q\\E"
@@ -246,6 +273,12 @@
   }, {
     
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.xa.atomikos.manager.AtomikosTransactionManagerProvider"},
     "pattern":"\\Qcom/atomikos/icatch/provider/imp/transactions.properties\\E"
+  }, {
+    
"condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory"},
+    
"pattern":"\\Qcom/clickhouse/client/internal/jpountz/util/linux/amd64/liblz4-java.so\\E"
+  }, {
+    
"condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory"},
+    "pattern":"\\Qcontainer-license-acceptance.txt\\E"
   }, {
     
"condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.cluster.etcd.EtcdRepository"},
     "pattern":"\\Qjndi.properties\\E"
@@ -255,9 +288,15 @@
   }, {
     
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
     "pattern":"\\Qlib/sqlparser/druid.jar\\E"
+  }, {
+    
"condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory"},
+    "pattern":"\\Qorg/apache/hc/core5/version.properties\\E"
   }, {
     
"condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.standalone.jdbc.JDBCRepository"},
     "pattern":"\\Qorg/h2/util/data.zip\\E"
+  }, {
+    
"condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory"},
+    "pattern":"\\Qorg/postgresql/driverconfig.properties\\E"
   }, {
     
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
     "pattern":"\\Qregistry.conf\\E"
@@ -2718,6 +2757,12 @@
   }, {
     
"condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.standalone.jdbc.sql.JDBCRepositorySQLLoader"},
     "pattern":"\\Qsql\\E"
+  }, {
+    
"condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory"},
+    "pattern":"\\Qtest-native/sql/seata-script-client-at-postgresql.sql\\E"
+  }, {
+    
"condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory"},
+    "pattern":"\\Qtest-native/sql/test-native-databases-clickhouse.sql\\E"
   }, {
     
"condition":{"typeReachable":"org.apache.shardingsphere.infra.url.classpath.ClassPathURLLoader"},
     "pattern":"\\Qtest-native/yaml/databases/clickhouse.yaml\\E"
@@ -2772,8 +2817,14 @@
   }, {
     
"condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.cluster.etcd.EtcdRepository"},
     "pattern":"\\Qvertx-default-jul-logging.properties\\E"
+  }, {
+    
"condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory"},
+    "pattern":"java.base:\\Qjdk/internal/icu/impl/data/icudt74b/nfkc.nrm\\E"
   }]},
   "bundles":[{
+    "name":"com.microsoft.sqlserver.jdbc.SQLServerResource",
+    "locales":["zh-CN"]
+  }, {
     "name":"sun.text.resources.cldr.FormatData",
     "locales":["en"]
   }]
diff --git a/pom.xml b/pom.xml
index d539451795a..216d0e7da08 100644
--- a/pom.xml
+++ b/pom.xml
@@ -979,9 +979,6 @@
         </profile>
         <profile>
             <id>generateMetadata</id>
-            <properties>
-                <java.version>21</java.version>
-            </properties>
             <build>
                 <pluginManagement>
                     <plugins>
@@ -1043,9 +1040,6 @@
         </profile>
         <profile>
             <id>nativeTestInShardingSphere</id>
-            <properties>
-                <java.version>21</java.version>
-            </properties>
             <build>
                 <pluginManagement>
                     <plugins>
diff --git a/test/native/native-image-filter/extra-filter.json 
b/test/native/native-image-filter/extra-filter.json
index efcbfe3d48b..ca2b00516a0 100644
--- a/test/native/native-image-filter/extra-filter.json
+++ b/test/native/native-image-filter/extra-filter.json
@@ -18,7 +18,7 @@
     {"excludeClasses": "com.arjuna.**"},
     {"excludeClasses": "com.atomikos.**"},
     {"excludeClasses": "com.alibaba.druid.**"},
-    {"excludeClasses": "com.clickhouse.jdbc.**"},
+    {"excludeClasses": "com.clickhouse.**"},
     {"excludeClasses": "com.ctc.wstx.stax.**"},
     {"excludeClasses": "com.fasterxml.jackson.databind.**"},
     {"excludeClasses": "com.github.benmanes.caffeine.cache.**"},
diff --git 
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/commons/TestShardingService.java
 
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/commons/TestShardingService.java
index 02f6906ce88..12980ee22ee 100644
--- 
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/commons/TestShardingService.java
+++ 
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/commons/TestShardingService.java
@@ -27,6 +27,7 @@ import 
org.apache.shardingsphere.test.natived.jdbc.commons.repository.OrderRepos
 
 import javax.sql.DataSource;
 import java.sql.SQLException;
+import java.sql.Statement;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -60,7 +61,7 @@ public final class TestShardingService {
      * @throws SQLException An exception that provides information on a 
database access error or other errors.
      */
     public void processSuccess() throws SQLException {
-        final Collection<Long> orderIds = insertData();
+        final Collection<Long> orderIds = 
insertData(Statement.RETURN_GENERATED_KEYS);
         Collection<Order> orders = orderRepository.selectAll();
         
assertThat(orders.stream().map(Order::getOrderType).collect(Collectors.toList()),
                 equalTo(Arrays.asList(0, 0, 0, 0, 0, 1, 1, 1, 1, 1)));
@@ -89,12 +90,12 @@ public final class TestShardingService {
     /**
      * Process success in ClickHouse.
      * ClickHouse has not fully supported transactions. Refer to <a 
href="https://github.com/ClickHouse/clickhouse-docs/issues/2300";>ClickHouse/clickhouse-docs#2300</a>.
-     * So ShardingSphere should not use {@code 
orderItemRepository.assertRollbackWithTransactions()} in the method here.
+     * So ShardingSphere should not use {@link 
OrderItemRepository#assertRollbackWithTransactions()} in the method here.
      *
      * @throws SQLException An exception that provides information on a 
database access error or other errors.
      */
     public void processSuccessInClickHouse() throws SQLException {
-        Collection<Long> orderIds = insertDataInClickHouse();
+        Collection<Long> orderIds = insertData(Statement.NO_GENERATED_KEYS);
         assertThat(orderIds, notNullValue());
         Collection<Order> orders = orderRepository.selectAll();
         
assertThat(orders.stream().map(Order::getOrderType).collect(Collectors.toList()),
@@ -122,11 +123,15 @@ public final class TestShardingService {
     
     /**
      * Insert data.
+     * @param autoGeneratedKeys a flag indicating whether auto-generated keys
+     *                          should be returned; one of
+     *                          {@code Statement.RETURN_GENERATED_KEYS} or
+     *                          {@code Statement.NO_GENERATED_KEYS}
      *
      * @return orderId of the insert statement.
      * @throws SQLException An exception that provides information on a 
database access error or other errors.
      */
-    public Collection<Long> insertData() throws SQLException {
+    public Collection<Long> insertData(final int autoGeneratedKeys) throws 
SQLException {
         Collection<Long> result = new ArrayList<>(10);
         for (int i = 1; i <= 10; i++) {
             Order order = new Order();
@@ -134,13 +139,13 @@ public final class TestShardingService {
             order.setOrderType(i % 2);
             order.setAddressId(i);
             order.setStatus("INSERT_TEST");
-            orderRepository.insert(order);
+            orderRepository.insert(order, autoGeneratedKeys);
             OrderItem orderItem = new OrderItem();
             orderItem.setOrderId(order.getOrderId());
             orderItem.setUserId(i);
             orderItem.setPhone("13800000001");
             orderItem.setStatus("INSERT_TEST");
-            orderItemRepository.insert(orderItem);
+            orderItemRepository.insert(orderItem, autoGeneratedKeys);
             Address address = new Address((long) i, "address_test_" + i);
             addressRepository.insert(address);
             result.add(order.getOrderId());
@@ -162,13 +167,13 @@ public final class TestShardingService {
             order.setOrderType(i % 2);
             order.setAddressId(i);
             order.setStatus("INSERT_TEST");
-            orderRepository.insertWithoutAutoGeneratedKey(order);
+            orderRepository.insert(order, Statement.NO_GENERATED_KEYS);
             OrderItem orderItem = new OrderItem();
             orderItem.setOrderId(order.getOrderId());
             orderItem.setUserId(i);
             orderItem.setPhone("13800000001");
             orderItem.setStatus("INSERT_TEST");
-            orderItemRepository.insertWithoutAutoGeneratedKey(orderItem);
+            orderItemRepository.insert(orderItem, Statement.NO_GENERATED_KEYS);
             Address address = new Address((long) i, "address_test_" + i);
             addressRepository.insert(address);
             result.add(order.getOrderId());
diff --git 
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/commons/repository/AddressRepository.java
 
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/commons/repository/AddressRepository.java
index 1e519f617a7..182913898cd 100644
--- 
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/commons/repository/AddressRepository.java
+++ 
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/commons/repository/AddressRepository.java
@@ -38,11 +38,11 @@ public final class AddressRepository {
     }
     
     /**
-     * create table t_address if not exists.
+     * create table t_address if not exists in MySQL.
      *
      * @throws SQLException SQL exception
      */
-    public void createTableIfNotExists() throws SQLException {
+    public void createTableIfNotExistsInMySQL() throws SQLException {
         String sql = "CREATE TABLE IF NOT EXISTS t_address (address_id BIGINT 
NOT NULL, address_name VARCHAR(100) NOT NULL, PRIMARY KEY (address_id))";
         try (
                 Connection connection = dataSource.getConnection();
@@ -62,7 +62,7 @@ public final class AddressRepository {
                 + "    address_id bigint NOT NULL,\n"
                 + "    address_name varchar(100) NOT NULL,\n"
                 + "    PRIMARY KEY (address_id)\n"
-                + ");";
+                + ")";
         try (
                 Connection connection = dataSource.getConnection();
                 Statement statement = connection.createStatement()) {
diff --git 
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/commons/repository/OrderItemRepository.java
 
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/commons/repository/OrderItemRepository.java
index 8979e284eff..b53071fb090 100644
--- 
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/commons/repository/OrderItemRepository.java
+++ 
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/commons/repository/OrderItemRepository.java
@@ -52,7 +52,7 @@ public final class OrderItemRepository {
                 + "user_id INT NOT NULL,\n"
                 + "phone VARCHAR(50),\n"
                 + "status VARCHAR(50),\n"
-                + "PRIMARY KEY (order_item_id));";
+                + "PRIMARY KEY (order_item_id))";
         try (
                 Connection connection = dataSource.getConnection();
                 Statement statement = connection.createStatement()) {
@@ -72,7 +72,7 @@ public final class OrderItemRepository {
                 + "    user_id INTEGER NOT NULL,\n"
                 + "    phone VARCHAR(50),\n"
                 + "    status VARCHAR(50)\n"
-                + ");";
+                + ")";
         try (
                 Connection connection = dataSource.getConnection();
                 Statement statement = connection.createStatement()) {
@@ -94,7 +94,7 @@ public final class OrderItemRepository {
                 + "    phone varchar(50),\n"
                 + "    status varchar(50),\n"
                 + "    PRIMARY KEY (order_item_id)\n"
-                + ");";
+                + ")";
         try (
                 Connection connection = dataSource.getConnection();
                 Statement statement = connection.createStatement()) {
@@ -104,6 +104,7 @@ public final class OrderItemRepository {
     
     /**
      * create table if not exists in ClickHouse.
+     * ClickHouse does not support `AUTO_INCREMENT`, refer to <a 
href="https://github.com/ClickHouse/ClickHouse/issues/56228";>ClickHouse/ClickHouse#56228</a>
 .
      *
      * @throws SQLException SQL exception
      */
@@ -208,7 +209,8 @@ public final class OrderItemRepository {
     }
     
     /**
-     * insert OrderItem to table.
+     * insert OrderItem to table. Databases like ClickHouse do not support 
returning auto generated keys after executing SQL,
+     * see <a 
href="https://github.com/ClickHouse/ClickHouse/issues/56228";>ClickHouse/ClickHouse#56228</a>
 .
      *
      * @param orderItem         orderItem
      * @param autoGeneratedKeys a flag indicating whether auto-generated keys
@@ -237,17 +239,6 @@ public final class OrderItemRepository {
         return orderItem.getOrderItemId();
     }
     
-    /**
-     * insert OrderItem to table without auto generated key. Databases like 
ClickHouse do not support returning auto generated keys after executing SQL,
-     * see <a 
href="https://github.com/ClickHouse/ClickHouse/issues/56228";>ClickHouse/ClickHouse#56228</a>
 .
-     *
-     * @param orderItem orderItem
-     * @throws SQLException SQL Exception
-     */
-    public void insertWithoutAutoGeneratedKey(final OrderItem orderItem) 
throws SQLException {
-        insert(orderItem, Statement.NO_GENERATED_KEYS);
-    }
-    
     /**
      * delete by orderItemId.
      *
diff --git 
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/commons/repository/OrderRepository.java
 
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/commons/repository/OrderRepository.java
index 0919940a716..01e69141d9c 100644
--- 
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/commons/repository/OrderRepository.java
+++ 
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/commons/repository/OrderRepository.java
@@ -49,7 +49,7 @@ public final class OrderRepository {
                 + "user_id INT NOT NULL,\n"
                 + "address_id BIGINT NOT NULL,\n"
                 + "status VARCHAR(50),\n"
-                + "PRIMARY KEY (order_id));";
+                + "PRIMARY KEY (order_id))";
         try (
                 Connection connection = dataSource.getConnection();
                 Statement statement = connection.createStatement()) {
@@ -69,7 +69,7 @@ public final class OrderRepository {
                 + "    user_id INTEGER NOT NULL,\n"
                 + "    address_id BIGINT NOT NULL,\n"
                 + "    status VARCHAR(50)\n"
-                + ");";
+                + ")";
         try (
                 Connection connection = dataSource.getConnection();
                 Statement statement = connection.createStatement()) {
@@ -91,7 +91,7 @@ public final class OrderRepository {
                 + "    address_id bigint NOT NULL,\n"
                 + "    status varchar(50),\n"
                 + "    PRIMARY KEY (order_id)\n"
-                + ");";
+                + ")";
         try (
                 Connection connection = dataSource.getConnection();
                 Statement statement = connection.createStatement()) {
@@ -101,6 +101,7 @@ public final class OrderRepository {
     
     /**
      * create table in ClickHouse.
+     * ClickHouse does not support `AUTO_INCREMENT`, refer to <a 
href="https://github.com/ClickHouse/ClickHouse/issues/56228";>ClickHouse/ClickHouse#56228</a>
 .
      *
      * @throws SQLException SQL exception
      */
@@ -113,7 +114,7 @@ public final class OrderRepository {
                 + "status String\n"
                 + ") engine = MergeTree \n"
                 + "primary key (order_id)\n"
-                + "order by(order_id); ";
+                + "order by(order_id)";
         try (
                 Connection connection = dataSource.getConnection();
                 Statement statement = connection.createStatement()) {
@@ -234,7 +235,8 @@ public final class OrderRepository {
     }
     
     /**
-     * insert Order to table.
+     * insert Order to table. Databases like ClickHouse do not support 
returning auto generated keys after executing SQL,
+     * see <a 
href="https://github.com/ClickHouse/ClickHouse/issues/56228";>ClickHouse/ClickHouse#56228</a>
 .
      *
      * @param order             order
      * @param autoGeneratedKeys a flag indicating whether auto-generated keys
diff --git 
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/ClickHouseTest.java
 
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/ClickHouseTest.java
index 0c526f833d9..6b2d46e673b 100644
--- 
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/ClickHouseTest.java
+++ 
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/ClickHouseTest.java
@@ -31,8 +31,8 @@ class ClickHouseTest {
     private TestShardingService testShardingService;
     
     /**
-     * TODO Need to fix `shardingsphere-parser-sql-clickhouse` module to use 
`testShardingService.cleanEnvironment()`
-     *      after `testShardingService.processSuccessInClickHouse()`.
+     * TODO Need to fix `shardingsphere-parser-sql-clickhouse` module to use 
{@link TestShardingService#cleanEnvironment()}
+     *      after {@link TestShardingService#processSuccessInClickHouse()}.
      *
      * @throws SQLException An exception that provides information on a 
database access error or other errors.
      */
@@ -49,7 +49,7 @@ class ClickHouseTest {
     
     /**
      * TODO Need to fix `shardingsphere-parser-sql-clickhouse` module to use 
`initEnvironment()`
-     * before `testShardingService.processSuccess()`.
+     * before {@link TestShardingService#processSuccessInClickHouse()}.
      *
      * @throws SQLException An exception that provides information on a 
database access error or other errors.
      */
@@ -57,7 +57,7 @@ class ClickHouseTest {
     private void initEnvironment() throws SQLException {
         
testShardingService.getOrderRepository().createTableIfNotExistsInClickHouse();
         
testShardingService.getOrderItemRepository().createTableIfNotExistsInClickHouse();
-        testShardingService.getAddressRepository().createTableIfNotExists();
+        
testShardingService.getAddressRepository().createTableIfNotExistsInMySQL();
         testShardingService.getOrderRepository().truncateTable();
         testShardingService.getOrderItemRepository().truncateTable();
         testShardingService.getAddressRepository().truncateTable();
diff --git 
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/MySQLTest.java
 
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/MySQLTest.java
index 7e1a53706d6..1403a074110 100644
--- 
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/MySQLTest.java
+++ 
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/MySQLTest.java
@@ -31,6 +31,7 @@ import javax.sql.DataSource;
 import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.SQLException;
+import java.sql.Statement;
 import java.time.Duration;
 import java.util.Properties;
 
@@ -78,7 +79,7 @@ class MySQLTest {
     private void initEnvironment() throws SQLException {
         
testShardingService.getOrderRepository().createTableIfNotExistsInMySQL();
         
testShardingService.getOrderItemRepository().createTableIfNotExistsInMySQL();
-        testShardingService.getAddressRepository().createTableIfNotExists();
+        
testShardingService.getAddressRepository().createTableIfNotExistsInMySQL();
         testShardingService.getOrderRepository().truncateTable();
         testShardingService.getOrderItemRepository().truncateTable();
         testShardingService.getAddressRepository().truncateTable();
@@ -92,18 +93,18 @@ class MySQLTest {
     }
     
     @SuppressWarnings({"SqlDialectInspection", "SqlNoDataSourceInspection"})
-    private DataSource createDataSource() {
+    private DataSource createDataSource() throws SQLException {
         
Awaitility.await().atMost(Duration.ofMinutes(1L)).ignoreExceptionsMatching(e -> 
e instanceof CommunicationsException)
                 .until(() -> {
                     openConnection().close();
                     return true;
                 });
-        try (Connection connection = openConnection()) {
-            connection.createStatement().executeUpdate("CREATE DATABASE 
demo_ds_0;");
-            connection.createStatement().executeUpdate("CREATE DATABASE 
demo_ds_1;");
-            connection.createStatement().executeUpdate("CREATE DATABASE 
demo_ds_2;");
-        } catch (final SQLException ex) {
-            throw new RuntimeException(ex);
+        try (
+                Connection connection = openConnection();
+                Statement statement = connection.createStatement()) {
+            statement.executeUpdate("CREATE DATABASE demo_ds_0");
+            statement.executeUpdate("CREATE DATABASE demo_ds_1");
+            statement.executeUpdate("CREATE DATABASE demo_ds_2");
         }
         HikariConfig config = new HikariConfig();
         
config.setDriverClassName("org.apache.shardingsphere.driver.ShardingSphereDriver");
diff --git 
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/OpenGaussTest.java
 
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/OpenGaussTest.java
index edff542ce3e..ad96a195fa2 100644
--- 
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/OpenGaussTest.java
+++ 
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/OpenGaussTest.java
@@ -30,6 +30,7 @@ import javax.sql.DataSource;
 import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.SQLException;
+import java.sql.Statement;
 import java.time.Duration;
 import java.util.Properties;
 
@@ -72,7 +73,7 @@ class OpenGaussTest {
     private void initEnvironment() throws SQLException {
         
testShardingService.getOrderRepository().createTableIfNotExistsInPostgres();
         
testShardingService.getOrderItemRepository().createTableIfNotExistsInPostgres();
-        testShardingService.getAddressRepository().createTableIfNotExists();
+        
testShardingService.getAddressRepository().createTableIfNotExistsInMySQL();
         testShardingService.getOrderRepository().truncateTable();
         testShardingService.getOrderItemRepository().truncateTable();
         testShardingService.getAddressRepository().truncateTable();
@@ -86,17 +87,17 @@ class OpenGaussTest {
     }
     
     @SuppressWarnings({"SqlDialectInspection", "SqlNoDataSourceInspection"})
-    private DataSource createDataSource() {
+    private DataSource createDataSource() throws SQLException {
         
Awaitility.await().atMost(Duration.ofMinutes(1L)).ignoreExceptions().until(() 
-> {
             openConnection().close();
             return true;
         });
-        try (Connection connection = openConnection()) {
-            connection.createStatement().executeUpdate("CREATE DATABASE 
demo_ds_0;");
-            connection.createStatement().executeUpdate("CREATE DATABASE 
demo_ds_1;");
-            connection.createStatement().executeUpdate("CREATE DATABASE 
demo_ds_2;");
-        } catch (final SQLException ex) {
-            throw new RuntimeException(ex);
+        try (
+                Connection connection = openConnection();
+                Statement statement = connection.createStatement()) {
+            statement.executeUpdate("CREATE DATABASE demo_ds_0");
+            statement.executeUpdate("CREATE DATABASE demo_ds_1");
+            statement.executeUpdate("CREATE DATABASE demo_ds_2");
         }
         HikariConfig config = new HikariConfig();
         
config.setDriverClassName("org.apache.shardingsphere.driver.ShardingSphereDriver");
diff --git 
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/PostgresTest.java
 
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/PostgresTest.java
index a9852c3ca31..f2fd80218fb 100644
--- 
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/PostgresTest.java
+++ 
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/PostgresTest.java
@@ -46,7 +46,7 @@ class PostgresTest {
     private void initEnvironment() throws SQLException {
         
testShardingService.getOrderRepository().createTableIfNotExistsInPostgres();
         
testShardingService.getOrderItemRepository().createTableIfNotExistsInPostgres();
-        testShardingService.getAddressRepository().createTableIfNotExists();
+        
testShardingService.getAddressRepository().createTableIfNotExistsInMySQL();
         testShardingService.getOrderRepository().truncateTable();
         testShardingService.getOrderItemRepository().truncateTable();
         testShardingService.getAddressRepository().truncateTable();
diff --git 
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/features/EncryptTest.java
 
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/features/EncryptTest.java
index bd6a2874ce4..31565acf931 100644
--- 
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/features/EncryptTest.java
+++ 
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/features/EncryptTest.java
@@ -63,7 +63,7 @@ class EncryptTest {
     private void initEnvironment() throws SQLException {
         orderRepository.createTableIfNotExistsInMySQL();
         orderItemRepository.createTableIfNotExistsInMySQL();
-        addressRepository.createTableIfNotExists();
+        addressRepository.createTableIfNotExistsInMySQL();
         orderRepository.truncateTable();
         orderItemRepository.truncateTable();
         addressRepository.truncateTable();
diff --git 
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/features/MaskTest.java
 
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/features/MaskTest.java
index f6fbd6320c4..66071948873 100644
--- 
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/features/MaskTest.java
+++ 
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/features/MaskTest.java
@@ -64,7 +64,7 @@ class MaskTest {
     private void initEnvironment() throws SQLException {
         orderRepository.createTableIfNotExistsInMySQL();
         orderItemRepository.createTableIfNotExistsInMySQL();
-        addressRepository.createTableIfNotExists();
+        addressRepository.createTableIfNotExistsInMySQL();
         orderRepository.truncateTable();
         orderItemRepository.truncateTable();
         addressRepository.truncateTable();
diff --git 
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/features/ReadWriteSplittingTest.java
 
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/features/ReadWriteSplittingTest.java
index d2c52b66a65..2bb48c20d21 100644
--- 
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/features/ReadWriteSplittingTest.java
+++ 
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/features/ReadWriteSplittingTest.java
@@ -60,7 +60,7 @@ class ReadWriteSplittingTest {
     private void initEnvironment() throws SQLException {
         orderRepository.createTableIfNotExistsInMySQL();
         orderItemRepository.createTableIfNotExistsInMySQL();
-        addressRepository.createTableIfNotExists();
+        addressRepository.createTableIfNotExistsInMySQL();
         orderRepository.truncateTable();
         orderItemRepository.truncateTable();
         addressRepository.truncateTable();
diff --git 
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/features/ShadowTest.java
 
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/features/ShadowTest.java
index f195e623f0f..c7e29830dcc 100644
--- 
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/features/ShadowTest.java
+++ 
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/features/ShadowTest.java
@@ -64,7 +64,7 @@ class ShadowTest {
     private void initEnvironment() throws SQLException {
         orderRepository.createTableIfNotExistsInMySQL();
         orderItemRepository.createTableIfNotExistsInMySQL();
-        addressRepository.createTableIfNotExists();
+        addressRepository.createTableIfNotExistsInMySQL();
         orderRepository.truncateTable();
         orderItemRepository.truncateTable();
         addressRepository.truncateTable();
diff --git 
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/features/ShardingTest.java
 
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/features/ShardingTest.java
index 99d18af2843..32efaef0214 100644
--- 
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/features/ShardingTest.java
+++ 
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/features/ShardingTest.java
@@ -44,7 +44,7 @@ class ShardingTest {
     private void initEnvironment() throws SQLException {
         
testShardingService.getOrderRepository().createTableIfNotExistsInMySQL();
         
testShardingService.getOrderItemRepository().createTableIfNotExistsInMySQL();
-        testShardingService.getAddressRepository().createTableIfNotExists();
+        
testShardingService.getAddressRepository().createTableIfNotExistsInMySQL();
         testShardingService.getOrderRepository().truncateTable();
         testShardingService.getOrderItemRepository().truncateTable();
         testShardingService.getAddressRepository().truncateTable();
diff --git 
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/modes/cluster/EtcdTest.java
 
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/modes/cluster/EtcdTest.java
index 325047d48ff..f8ceff784eb 100644
--- 
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/modes/cluster/EtcdTest.java
+++ 
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/modes/cluster/EtcdTest.java
@@ -21,19 +21,12 @@ import com.zaxxer.hikari.HikariConfig;
 import com.zaxxer.hikari.HikariDataSource;
 import io.etcd.jetcd.launcher.Etcd;
 import io.etcd.jetcd.launcher.EtcdCluster;
-import org.apache.hc.client5.http.classic.methods.HttpGet;
-import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
-import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse;
-import org.apache.hc.client5.http.impl.classic.HttpClients;
-import org.apache.hc.core5.http.HttpStatus;
-import org.apache.hc.core5.http.io.entity.EntityUtils;
 import org.apache.shardingsphere.test.natived.jdbc.commons.TestShardingService;
 import org.awaitility.Awaitility;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.condition.EnabledInNativeImage;
 
 import javax.sql.DataSource;
-import java.io.IOException;
 import java.net.URI;
 import java.sql.SQLException;
 import java.time.Duration;
@@ -80,7 +73,7 @@ class EtcdTest {
     private void initEnvironment() throws SQLException {
         
testShardingService.getOrderRepository().createTableIfNotExistsInMySQL();
         
testShardingService.getOrderItemRepository().createTableIfNotExistsInMySQL();
-        testShardingService.getAddressRepository().createTableIfNotExists();
+        
testShardingService.getAddressRepository().createTableIfNotExistsInMySQL();
         testShardingService.getOrderRepository().truncateTable();
         testShardingService.getOrderItemRepository().truncateTable();
         testShardingService.getAddressRepository().truncateTable();
@@ -88,7 +81,6 @@ class EtcdTest {
     
     private DataSource createDataSource(final List<URI> clientEndpoints) {
         URI clientEndpoint = clientEndpoints.get(0);
-        
Awaitility.await().atMost(Duration.ofSeconds(30L)).ignoreExceptions().until(() 
-> verifyEtcdClusterRunning(clientEndpoint));
         HikariConfig config = new HikariConfig();
         
config.setDriverClassName("org.apache.shardingsphere.driver.ShardingSphereDriver");
         
config.setJdbcUrl("jdbc:shardingsphere:classpath:test-native/yaml/modes/cluster/etcd.yaml?placeholder-type=system_props");
@@ -100,18 +92,4 @@ class EtcdTest {
             System.clearProperty(SYSTEM_PROP_KEY_PREFIX + "server-lists");
         }
     }
-    
-    private Boolean verifyEtcdClusterRunning(final URI clientEndpoint) throws 
IOException {
-        boolean flag = false;
-        HttpGet httpGet = new HttpGet(clientEndpoint.toString() + "/health");
-        try (
-                CloseableHttpClient httpclient = HttpClients.createDefault();
-                CloseableHttpResponse response = httpclient.execute(httpGet)) {
-            if (HttpStatus.SC_OK == response.getCode()) {
-                flag = true;
-            }
-            EntityUtils.consume(response.getEntity());
-        }
-        return flag;
-    }
 }
diff --git 
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/modes/cluster/ZookeeperTest.java
 
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/modes/cluster/ZookeeperTest.java
index 9c9d1d5617c..88836303e1a 100644
--- 
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/modes/cluster/ZookeeperTest.java
+++ 
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/modes/cluster/ZookeeperTest.java
@@ -68,7 +68,7 @@ class ZookeeperTest {
     private void initEnvironment() throws SQLException {
         
testShardingService.getOrderRepository().createTableIfNotExistsInMySQL();
         
testShardingService.getOrderItemRepository().createTableIfNotExistsInMySQL();
-        testShardingService.getAddressRepository().createTableIfNotExists();
+        
testShardingService.getAddressRepository().createTableIfNotExistsInMySQL();
         testShardingService.getOrderRepository().truncateTable();
         testShardingService.getOrderItemRepository().truncateTable();
         testShardingService.getAddressRepository().truncateTable();
diff --git 
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/transactions/base/SeataTest.java
 
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/transactions/base/SeataTest.java
index b3f0b73301a..827d856a1c1 100644
--- 
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/transactions/base/SeataTest.java
+++ 
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/transactions/base/SeataTest.java
@@ -60,7 +60,7 @@ class SeataTest {
     private void initEnvironment() throws SQLException {
         
testShardingService.getOrderRepository().createTableIfNotExistsInPostgres();
         
testShardingService.getOrderItemRepository().createTableIfNotExistsInPostgres();
-        testShardingService.getAddressRepository().createTableIfNotExists();
+        
testShardingService.getAddressRepository().createTableIfNotExistsInMySQL();
         testShardingService.getOrderRepository().truncateTable();
         testShardingService.getOrderItemRepository().truncateTable();
         testShardingService.getAddressRepository().truncateTable();
diff --git 
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/transactions/xa/AtomikosTest.java
 
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/transactions/xa/AtomikosTest.java
index 9df766bec81..141c4f87d6d 100644
--- 
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/transactions/xa/AtomikosTest.java
+++ 
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/transactions/xa/AtomikosTest.java
@@ -44,7 +44,7 @@ class AtomikosTest {
     private void initEnvironment() throws SQLException {
         
testShardingService.getOrderRepository().createTableIfNotExistsInMySQL();
         
testShardingService.getOrderItemRepository().createTableIfNotExistsInMySQL();
-        testShardingService.getAddressRepository().createTableIfNotExists();
+        
testShardingService.getAddressRepository().createTableIfNotExistsInMySQL();
         testShardingService.getOrderRepository().truncateTable();
         testShardingService.getOrderItemRepository().truncateTable();
         testShardingService.getAddressRepository().truncateTable();
diff --git 
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/transactions/xa/NarayanaTest.java
 
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/transactions/xa/NarayanaTest.java
index 87993a52150..ba7103fd885 100644
--- 
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/transactions/xa/NarayanaTest.java
+++ 
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/transactions/xa/NarayanaTest.java
@@ -47,7 +47,7 @@ class NarayanaTest {
     private void initEnvironment() throws SQLException {
         
testShardingService.getOrderRepository().createTableIfNotExistsInMySQL();
         
testShardingService.getOrderItemRepository().createTableIfNotExistsInMySQL();
-        testShardingService.getAddressRepository().createTableIfNotExists();
+        
testShardingService.getAddressRepository().createTableIfNotExistsInMySQL();
         testShardingService.getOrderRepository().truncateTable();
         testShardingService.getOrderItemRepository().truncateTable();
         testShardingService.getAddressRepository().truncateTable();

Reply via email to