diff --git a/pom.xml b/pom.xml
index 5013ee4..9c5b187 100644
--- a/pom.xml
+++ b/pom.xml
@@ -20,11 +20,11 @@
17
UTF-8
- 3.5.0
- 2025.0.0
- 6.6.15.Final
- 3.1.0
- 7.0
+ 4.0.0
+ 2025.1.0
+ 7.1.8.Final
+ 4.0.0
+ 7.1
1.6.3
1.5.0
@@ -103,12 +103,12 @@
org.apache.maven.plugins
maven-source-plugin
- 3.3.1
+ 3.4.0
org.apache.maven.plugins
maven-compiler-plugin
- 3.14.0
+ 3.14.1
org.hibernate
diff --git a/spring-boot-service-template-jpa/src/main/java/com/lanyuanxiaoyao/service/template/jpa/Helper.java b/spring-boot-service-template-jpa/src/main/java/com/lanyuanxiaoyao/service/template/jpa/Helper.java
index 718b127..d15eb67 100644
--- a/spring-boot-service-template-jpa/src/main/java/com/lanyuanxiaoyao/service/template/jpa/Helper.java
+++ b/spring-boot-service-template-jpa/src/main/java/com/lanyuanxiaoyao/service/template/jpa/Helper.java
@@ -8,11 +8,11 @@ import java.util.EnumSet;
import java.util.HashSet;
import java.util.Set;
import org.hibernate.boot.MetadataSources;
-import org.hibernate.boot.model.naming.CamelCaseToUnderscoresNamingStrategy;
+import org.hibernate.boot.model.naming.PhysicalNamingStrategySnakeCaseImpl;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.tool.hbm2ddl.SchemaExport;
import org.hibernate.tool.schema.TargetType;
-import org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy;
+import org.springframework.boot.hibernate.SpringImplicitNamingStrategy;
import org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider;
import org.springframework.core.type.filter.AnnotationTypeFilter;
import org.springframework.util.ClassUtils;
@@ -54,7 +54,7 @@ public class Helper {
var metadataSources = new MetadataSources(
new StandardServiceRegistryBuilder()
.applySetting("hibernate.dialect", dialect.getName())
- .applySetting("hibernate.physical_naming_strategy", CamelCaseToUnderscoresNamingStrategy.class.getName())
+ .applySetting("hibernate.physical_naming_strategy", PhysicalNamingStrategySnakeCaseImpl.class.getName())
.applySetting("hibernate.implicit_naming_strategy", SpringImplicitNamingStrategy.class.getName())
.applySetting("hibernate.connection.url", jdbc)
.applySetting("hibernate.connection.username", username)
@@ -231,7 +231,7 @@ public class Helper {
// 2. 前一个字符是数字
// 3. 当前大写字母不是最后一个字符,且下一个字符是小写(处理连续大写字母如"XMLParser" -> "xml_parser")
char previousChar = camelCase.charAt(i - 1);
- if (Character.isLowerCase(previousChar)
+ if (Character.isLowerCase(previousChar)
|| Character.isDigit(previousChar)
|| (i < camelCase.length() - 1 && Character.isLowerCase(camelCase.charAt(i + 1)))) {
result.append('_');
diff --git a/spring-boot-service-template-jpa/src/main/java/com/lanyuanxiaoyao/service/template/jpa/entity/SnowflakeIdGenerator.java b/spring-boot-service-template-jpa/src/main/java/com/lanyuanxiaoyao/service/template/jpa/entity/SnowflakeIdGenerator.java
index 74b2357..7ed796d 100644
--- a/spring-boot-service-template-jpa/src/main/java/com/lanyuanxiaoyao/service/template/jpa/entity/SnowflakeIdGenerator.java
+++ b/spring-boot-service-template-jpa/src/main/java/com/lanyuanxiaoyao/service/template/jpa/entity/SnowflakeIdGenerator.java
@@ -5,10 +5,9 @@ import java.time.Instant;
import lombok.extern.slf4j.Slf4j;
import org.hibernate.engine.spi.SharedSessionContractImplementor;
import org.hibernate.id.IdentifierGenerator;
-import org.hibernate.id.factory.spi.StandardGenerator;
@Slf4j
-public class SnowflakeIdGenerator implements IdentifierGenerator, StandardGenerator {
+public class SnowflakeIdGenerator implements IdentifierGenerator {
@Override
public Serializable generate(SharedSessionContractImplementor session, Object object) {
try {
diff --git a/spring-boot-service-template-jpa/src/test/java/com/lanyuanxiaoyao/service/template/jpa/TestApplication.java b/spring-boot-service-template-jpa/src/test/java/com/lanyuanxiaoyao/service/template/jpa/TestApplication.java
index 8034931..d4e0d28 100644
--- a/spring-boot-service-template-jpa/src/test/java/com/lanyuanxiaoyao/service/template/jpa/TestApplication.java
+++ b/spring-boot-service-template-jpa/src/test/java/com/lanyuanxiaoyao/service/template/jpa/TestApplication.java
@@ -1,9 +1,6 @@
package com.lanyuanxiaoyao.service.template.jpa;
import com.blinkfox.fenix.EnableFenix;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
import com.lanyuanxiaoyao.service.template.jpa.entity.Company;
import com.lanyuanxiaoyao.service.template.jpa.entity.Company_;
import com.lanyuanxiaoyao.service.template.jpa.entity.Employee;
@@ -26,6 +23,8 @@ import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.util.Assert;
import org.springframework.web.client.RestTemplate;
+import tools.jackson.databind.JsonNode;
+import tools.jackson.databind.ObjectMapper;
/**
* @author lanyuanxiaoyao
@@ -47,7 +46,7 @@ public class TestApplication {
}
@EventListener(ApplicationReadyEvent.class)
- public void runTests() throws JsonProcessingException {
+ public void runTests() {
// 增
var cid1 = saveItem("company", "{\"name\": \"Apple\",\"members\": 10}").get("data").asLong();
var cid2 = saveItem("company", "{\"name\": \"Banana\",\"members\": 20}").get("data").asLong();
@@ -150,7 +149,7 @@ public class TestApplication {
}
@EventListener(ApplicationReadyEvent.class)
- public void runSpecificationTests() throws JsonProcessingException {
+ public void runSpecificationTests() {
// 增
var cid1 = saveItem("company", "{\"name\": \"Apple\",\"members\": 10}").get("data").asLong();
var cid2 = saveItem("company", "{\"name\": \"Banana\",\"members\": 20}").get("data").asLong();
@@ -232,7 +231,7 @@ public class TestApplication {
}
@EventListener(ApplicationReadyEvent.class)
- public void runNativeQueryTests() throws JsonProcessingException {
+ public void runNativeQueryTests() {
// 增
var cid1 = saveItem("company", "{\"name\": \"Apple\",\"members\": 10}").get("data").asLong();
var cid2 = saveItem("company", "{\"name\": \"Banana\",\"members\": 20}").get("data").asLong();
@@ -255,7 +254,7 @@ public class TestApplication {
return headers;
}
- private JsonNode saveItem(String path, String body) throws JsonProcessingException {
+ private JsonNode saveItem(String path, String body) {
var response = REST_CLIENT.postForEntity(
"%s/%s/save".formatted(BASE_URL, path),
new HttpEntity<>(body, headers()),
@@ -266,7 +265,7 @@ public class TestApplication {
return MAPPER.readTree(response.getBody());
}
- private JsonNode listItems(String path) throws JsonProcessingException {
+ private JsonNode listItems(String path) {
var response = REST_CLIENT.getForEntity(
"%s/%s/list".formatted(BASE_URL, path),
String.class
@@ -276,7 +275,7 @@ public class TestApplication {
return MAPPER.readTree(response.getBody());
}
- private JsonNode listItems(String path, String query) throws JsonProcessingException {
+ private JsonNode listItems(String path, String query) {
var response = REST_CLIENT.postForEntity(
"%s/%s/list".formatted(BASE_URL, path),
new HttpEntity<>(query, headers()),
@@ -287,7 +286,7 @@ public class TestApplication {
return MAPPER.readTree(response.getBody());
}
- private JsonNode detailItem(String path, Long id) throws JsonProcessingException {
+ private JsonNode detailItem(String path, Long id) {
var response = REST_CLIENT.getForEntity(
"%s/%s/detail/%d".formatted(BASE_URL, path, id),
String.class