Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Spring Mvc Hibernate Encoding/Multi-line import sql

I am working on Spring MVC,

On project startup i have set database to import default sql with hibernate configuration hibernate.hbm2ddl.import_files. Data inside import.sql is encoded with UTF-8.

Console Output

 ERROR: org.hibernate.tool.hbm2ddl.SchemaExport - HHH000388:
 Unsuccessful: INSERT INTO menu (id, DATE_CREATED, DATE_DELETED,
 DATE_UPDATED, TITLE_ENG, TITLE_GEO, TITLE_RUS, ENABLED, PARENT_ID,
 URL, SITE_ID, USER_ID) VALUES 

 ERROR:
 org.hibernate.tool.hbm2ddl.SchemaExport - You have an error in your
 SQL syntax; check the manual that corresponds to your MySQL server
 version for the right syntax to use near '' at line 1

 ERROR:
 org.hibernate.tool.hbm2ddl.SchemaExport - HHH000388: Unsuccessful: (1,
 '2015-09-10 12:00:00', NULL, NULL, 'About Us', N'ჩვენს
 შეს�ხებ', 'About Us', b'1', NULL, '/article/view/1', 3,
 1).
like image 825
Mikheil Janiashvili Avatar asked Dec 01 '22 14:12

Mikheil Janiashvili


1 Answers

  1. Make sure you are setting the JDBC driver to use UTF-8:

    jdbc:mysql://dbname?useUnicode=true&characterEncoding=utf-8

  2. In persistence.xml, set the hibernate connection charset:

    <property name="hibernate.connection.charSet" value="UTF-8"/>

If your resources/import.sql file is multi-line, add:

<property 
  name="hibernate.hbm2ddl.import_files_sql_extractor"
  value="org.hibernate.tool.hbm2ddl.MultipleLinesSqlCommandExtractor" 
/>

or for Spring Boot, in application.properties:

spring.jpa.properties.hibernate.connection.charSet=UTF-8
spring.jpa.properties.hibernate.hbm2ddl.import_files_sql_extractor=org.hibernate.tool.hbm2ddl.MultipleLinesSqlCommandExtractor
like image 159
Neil McGuigan Avatar answered Dec 06 '22 15:12

Neil McGuigan