rebase and resubmit

Change-Id: I840888ad5aadceaacb5cd64c6472614cd82ffe17
diff --git a/pom.xml b/pom.xml
index 30b1143..caedede 100644
--- a/pom.xml
+++ b/pom.xml
@@ -13,9 +13,8 @@
   <properties>
     <!-- 使用 Java 9,以支持接口中的 private 方法 -->
     <maven.compiler.source>9</maven.compiler.source>
-    <maven.compiler.target>9</maven.compiler.target>
-    <!-- 推荐使用 release 模式,自动设置 source/target -->
-    <maven.compiler.release>9</maven.compiler.release>
+    <!-- 如果还没定义,请添加 QueryDSL 版本 -->
+    <querydsl.version>5.0.0</querydsl.version>
   </properties>
 
   <!-- 添加依赖 -->
@@ -37,8 +36,8 @@
       <version>5.6.14.Final</version>
     </dependency>
     <dependency>
-      <groupId>mysql</groupId>
-      <artifactId>mysql-connector-java</artifactId>
+      <groupId>com.mysql</groupId>
+      <artifactId>mysql-connector-j</artifactId>
       <version>8.0.32</version>
     </dependency>
     <dependency>
@@ -55,12 +54,12 @@
     <dependency>
       <groupId>com.querydsl</groupId>
       <artifactId>querydsl-jpa</artifactId>
-      <version>5.0.0</version>
+      <version>${querydsl.version}</version>
     </dependency>
     <dependency>
       <groupId>com.querydsl</groupId>
       <artifactId>querydsl-apt</artifactId>
-      <version>5.0.0</version>
+      <version>${querydsl.version}</version>
       <scope>provided</scope>
     </dependency>
     <dependency>
@@ -68,6 +67,33 @@
       <artifactId>javax.annotation-api</artifactId>
       <version>1.3.2</version>
     </dependency>
+    <!-- JUnit Jupiter API & Engine for writing and running tests -->
+    <dependency>
+      <groupId>org.junit.jupiter</groupId>
+      <artifactId>junit-jupiter</artifactId>
+      <version>5.9.1</version>
+      <scope>test</scope>
+    </dependency>
+    <!-- JUnit Jupiter Engine -->
+    <dependency>
+      <groupId>org.junit.jupiter</groupId>
+      <artifactId>junit-jupiter-engine</artifactId>
+      <version>5.9.1</version>
+      <scope>test</scope>
+    </dependency>
+    <!-- 添加 Querydsl 核心依赖 -->
+    <dependency>
+      <groupId>com.querydsl</groupId>
+      <artifactId>querydsl-core</artifactId>
+      <version>5.0.0</version>
+    </dependency>
+    <!-- 添加 Querydsl APT,仅在编译时使用 -->
+    <dependency>
+      <groupId>com.querydsl</groupId>
+      <artifactId>querydsl-apt</artifactId>
+      <version>5.0.0</version>
+      <scope>provided</scope>
+    </dependency>
   </dependencies>
 
   <!-- 构建配置 -->
@@ -88,24 +114,24 @@
             <path>
               <groupId>com.querydsl</groupId>
               <artifactId>querydsl-apt</artifactId>
-              <version>4.4.0</version>
-            </path>
-            <path>
-              <groupId>com.querydsl</groupId>
-              <artifactId>querydsl-apt</artifactId>
-              <version>5.0.0</version>
+              <version>${querydsl.version}</version>
               <classifier>jpa</classifier>
             </path>
             <path>
               <groupId>com.querydsl</groupId>
               <artifactId>querydsl-jpa</artifactId>
-              <version>5.0.0</version>
+              <version>${querydsl.version}</version>
             </path>
             <path>
               <groupId>javax.annotation</groupId>
               <artifactId>javax.annotation-api</artifactId>
               <version>1.3.2</version>
             </path>
+            <path>
+              <groupId>javax.persistence</groupId>
+              <artifactId>javax.persistence-api</artifactId>
+              <version>2.2</version>
+            </path>
           </annotationProcessorPaths>
           <generatedSourcesDirectory>${project.build.directory}/generated-sources/java</generatedSourcesDirectory>
         </configuration>
@@ -135,6 +161,65 @@
           </execution>
         </executions>
       </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <version>2.22.2</version>
+        <configuration>
+          <includes>
+            <include>**/*Test.java</include>
+          </includes>
+          <!-- 确保 test 可以访问 main 的类 -->
+          <useSystemClassLoader>true</useSystemClassLoader>
+          <useManifestOnlyJar>false</useManifestOnlyJar>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <version>2.22.2</version>
+        <configuration>
+          <includes>
+            <include>**/*Test.java</include>
+          </includes>
+        </configuration>
+      </plugin>
+      <!-- Optional: 将生成目录加入编译生命周期 -->
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>build-helper-maven-plugin</artifactId>
+        <version>3.2.0</version>
+        <executions>
+          <execution>
+            <id>add-source</id>
+            <phase>generate-sources</phase>
+            <goals><goal>add-source</goal></goals>
+            <configuration>
+              <sources>
+                <source>${project.build.directory}/generated-sources/java</source>
+              </sources>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <!-- 添加 APT 插件配置,生成 Q 类 -->
+      <plugin>
+        <groupId>com.mysema.maven</groupId>
+        <artifactId>apt-maven-plugin</artifactId>
+        <version>1.1.3</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>process</goal>
+            </goals>
+            <configuration>
+              <!-- 生成目录,可根据项目实际调整 -->
+              <outputDirectory>target/generated-sources/java</outputDirectory>
+              <processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
     </plugins>
   </build>