From f594dd68f89f73a3e47f58d4a5860f25f5e8213e Mon Sep 17 00:00:00 2001 From: Georgios Andrianakis Date: Mon, 25 May 2020 16:13:36 +0300 Subject: [PATCH] Use Charset in HibernateOrmConfig and default to UTF-8 --- .../hibernate/orm/deployment/HibernateOrmConfig.java | 11 ++++++++--- .../orm/deployment/HibernateOrmProcessor.java | 5 +++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/extensions/hibernate-orm/deployment/src/main/java/io/quarkus/hibernate/orm/deployment/HibernateOrmConfig.java b/extensions/hibernate-orm/deployment/src/main/java/io/quarkus/hibernate/orm/deployment/HibernateOrmConfig.java index d3e3106ee4d7ea..9f55bc64cf7ef9 100644 --- a/extensions/hibernate-orm/deployment/src/main/java/io/quarkus/hibernate/orm/deployment/HibernateOrmConfig.java +++ b/extensions/hibernate-orm/deployment/src/main/java/io/quarkus/hibernate/orm/deployment/HibernateOrmConfig.java @@ -1,5 +1,6 @@ package io.quarkus.hibernate.orm.deployment; +import java.nio.charset.Charset; import java.time.Duration; import java.util.Map; import java.util.Optional; @@ -219,6 +220,8 @@ public boolean isAnyPropertySet() { @ConfigGroup public static class HibernateOrmConfigDatabase { + private static final String DEFAULT_CHARSET = "UTF-8"; + /** * Select whether the database schema is generated or not. * @@ -249,9 +252,11 @@ public static class HibernateOrmConfigDatabase { /** * The charset of the database. + *

+ * Used for DDL generation and also for the SQL import scripts. */ - @ConfigItem - public Optional charset; + @ConfigItem(defaultValue = "UTF-8") + public Charset charset; /** * Whether Hibernate should quote all identifiers. @@ -262,7 +267,7 @@ public static class HibernateOrmConfigDatabase { public boolean isAnyPropertySet() { return !"none".equals(generation) || defaultCatalog.isPresent() || defaultSchema.isPresent() || generationHaltOnError - || charset.isPresent() + || !DEFAULT_CHARSET.equals(charset.name()) || globallyQuotedIdentifiers; } } diff --git a/extensions/hibernate-orm/deployment/src/main/java/io/quarkus/hibernate/orm/deployment/HibernateOrmProcessor.java b/extensions/hibernate-orm/deployment/src/main/java/io/quarkus/hibernate/orm/deployment/HibernateOrmProcessor.java index 86c17a6138f863..50eb46eca5eb51 100644 --- a/extensions/hibernate-orm/deployment/src/main/java/io/quarkus/hibernate/orm/deployment/HibernateOrmProcessor.java +++ b/extensions/hibernate-orm/deployment/src/main/java/io/quarkus/hibernate/orm/deployment/HibernateOrmProcessor.java @@ -784,8 +784,9 @@ private void handleHibernateORMWithNoPersistenceXml( desc.getProperties().setProperty(AvailableSettings.HBM2DDL_HALT_ON_ERROR, "true"); } - hibernateConfig.database.charset.ifPresent( - charset -> desc.getProperties().setProperty(AvailableSettings.HBM2DDL_CHARSET_NAME, charset)); + //charset + desc.getProperties().setProperty(AvailableSettings.HBM2DDL_CHARSET_NAME, + hibernateConfig.database.charset.name()); hibernateConfig.database.defaultCatalog.ifPresent( catalog -> desc.getProperties().setProperty(AvailableSettings.DEFAULT_CATALOG, catalog));