В проекте Spring Boot я использую файл импорта. sql для инициализации базы данных. Сегодня у меня нет никаких проблем, и это работает правильно. Это фрагмент исходного файла:
insert into ref_building (code, label, description) values ("METAL", "Métal", "Permet d'extraire");
insert into ref_building (code, label, description) values ("PETROLE", "Pétrole", "Permet d'extraire");
Чтобы улучшить читаемость файла SQL, я решил использовать MultipleLinesSqlCommandExtractor в свойствах YAML, например:
spring:
jpa :
properties:
hibernate:
connection:
charSet: UTF-8
hbm2ddl:
import_files_sql_extractor: org.hibernate.tool.hbm2ddl.MultipleLinesSqlCommandExtractor
После добавления этой ошибки у меня возникает ошибка с Spring Boot.
org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "insert into ref_building [...]
После анализа проблема заключается в одинарной кавычке («Permet d'extraire»)
Таким образом, я избегаю одиночной кавычки следующим образом:
insert into ref_building (code, label, description) values ("METAL", "Métal", "Permet d''extraire");
insert into ref_building (code, label, description) values ("PETROLE", "Pétrole", "Permet d''extraire");
У меня нет ошибки при запуске, но в моей базе данных я нахожу значение: Permet d''exraire (с двумя одинарными кавычками)
Я не понимаю, как избежать этого правильно (и почему это не работает конкретно с MultipleLinesSqlCommandExtractor).