У меня проблемы с кодировкой символов в моем JPA тестовом классе.
В моей h2 в базе данных У меня есть запрос вставки :
INSERT INTO MYTABLE (ID,FIELD1,FIELD2) VALUES (100,'ABC','Réclamation');
(обратите внимание на символ "é" в "Réclamation")
В моем тесте JUnit я пытаюсь утверждать, что значение столбца FIELD2 равно "Réclamation"(как вы можете видеть)
Но происходит сбой со следующей ошибкой:
org.junit.ComparisonFailure: ожидается: R [é], но было: R[�] clamation
Интересно, есть ли способ указать кодировку символов в файле persistence.xml (может быть? Или где-то еще)
Вотмой тестовый файл persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence
version="2.1"
xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="myTestPU">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<class>com.myproject.myclass1</class>
<class>com.myproject.myclass2</class>
<properties>
<property
name="javax.persistence.schema-generation.database.action"
value="none" />
<property
name="javax.persistence.sharedCache.mode"
value="ENABLE_SELECTIVE" />
<property
name="javax.persistence.jdbc.url"
value="jdbc:h2:mem:test;INIT=RUNSCRIPT FROM 'classpath:ddl/schema.sql'\;RUNSCRIPT FROM 'classpath:ddl/data.sql'" />
<property
name="javax.persistence.jdbc.driver"
value="org.h2.Driver" />
<property
name="hibernate.dialect"
value="org.hibernate.dialect.H2Dialect" />
<property
name="hibernate.show_sql"
value="true" />
<property
name="hibernate.format_sql"
value="true" />
</properties>
</persistence-unit>
</persistence>
Я уже пробовал эти решения:
добавление следующих свойств в тестовый файл persistence.xml:
<property
name="hibernate.connection.characterEncoding"
value="utf8" />
<property
name="hibernate.connection.useUnicode"
value="true" />
<property
name="hibernate.connection.charSet"
value="UTF-8" />
добавление ?useUnicode=yes&characterEncoding=UTF-8
в мое свойство URL
Ни один из них не работал для меня ...
NB: Я не использую Spring Framework в своем приложении