From 4808eb102284663064edd40da1b290b32358a5d1 Mon Sep 17 00:00:00 2001 From: lihongjie0209 Date: Thu, 27 Jul 2023 15:47:32 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=84=E8=8C=83=E8=A1=A8=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../coal/config/HibernateConfig.java | 34 +++++++++++++++---- .../coal/entity/OrganizationEntity.java | 2 +- .../lihongjie/coal/entity/ResourceEntity.java | 2 +- 3 files changed, 29 insertions(+), 9 deletions(-) diff --git a/src/main/java/cn/lihongjie/coal/config/HibernateConfig.java b/src/main/java/cn/lihongjie/coal/config/HibernateConfig.java index 9f140779..f140ed37 100644 --- a/src/main/java/cn/lihongjie/coal/config/HibernateConfig.java +++ b/src/main/java/cn/lihongjie/coal/config/HibernateConfig.java @@ -1,22 +1,26 @@ package cn.lihongjie.coal.config; import org.hibernate.boot.ResourceStreamLocator; -import org.hibernate.boot.spi.*; -import org.hibernate.dialect.Dialect; +import org.hibernate.boot.model.naming.CamelCaseToUnderscoresNamingStrategy; +import org.hibernate.boot.model.naming.Identifier; +import org.hibernate.boot.model.naming.PhysicalNamingStrategy; +import org.hibernate.boot.spi.AdditionalMappingContributions; +import org.hibernate.boot.spi.AdditionalMappingContributor; +import org.hibernate.boot.spi.InFlightMetadataCollector; +import org.hibernate.boot.spi.MetadataBuildingContext; import org.hibernate.dialect.PostgreSQLDialect; +import org.hibernate.engine.jdbc.env.spi.JdbcEnvironment; import org.hibernate.type.SqlTypes; import org.hibernate.type.descriptor.sql.internal.DdlTypeImpl; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import java.sql.SQLType; - @Configuration public class HibernateConfig { @Bean - AdditionalMappingContributor metadataContributor(){ + AdditionalMappingContributor metadataContributor() { return new AdditionalMappingContributor() { @Override @@ -32,9 +36,25 @@ public class HibernateConfig { .addDescriptor(SqlTypes.VARCHAR, new DdlTypeImpl(SqlTypes.VARCHAR, "text", new PostgreSQLDialect())); - - } }; } + + + @Bean + public PhysicalNamingStrategy physicalNamingStrategy() { + + return new CamelCaseToUnderscoresNamingStrategy() { + + @Override + public Identifier toPhysicalTableName(Identifier logicalName, JdbcEnvironment jdbcEnvironment) { + + return super.toPhysicalTableName(new Identifier("t_" + logicalName.getText().replace("Entity", ""), + logicalName.isQuoted()), + jdbcEnvironment); + } + + }; + + } } diff --git a/src/main/java/cn/lihongjie/coal/entity/OrganizationEntity.java b/src/main/java/cn/lihongjie/coal/entity/OrganizationEntity.java index 1b98f3ed..a11e78fc 100644 --- a/src/main/java/cn/lihongjie/coal/entity/OrganizationEntity.java +++ b/src/main/java/cn/lihongjie/coal/entity/OrganizationEntity.java @@ -17,7 +17,7 @@ import java.util.List; public class OrganizationEntity extends CommonEntity { - @OneToMany + @OneToMany(mappedBy = "parent") @JsonManagedReference private List children; diff --git a/src/main/java/cn/lihongjie/coal/entity/ResourceEntity.java b/src/main/java/cn/lihongjie/coal/entity/ResourceEntity.java index d6799b86..74985e7f 100644 --- a/src/main/java/cn/lihongjie/coal/entity/ResourceEntity.java +++ b/src/main/java/cn/lihongjie/coal/entity/ResourceEntity.java @@ -19,7 +19,7 @@ public class ResourceEntity extends CommonEntity { private List permissions; - @OneToMany + @OneToMany(mappedBy = "parent") @JsonManagedReference private List children;