내 개발 데이터를 DB에 쓰려면 import.sql을 사용하고 있습니다. 나는 MySQL 서버 5.5을 사용하고 있는데 내의 persistence.xml은 여기에 있습니다 : 내 import.sql에서Hibernate/JPA import.sql utf8 문자가 손상됨
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="MobilHM" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>tr.com.stigma.db.entity.Doctor</class>
<class>tr.com.stigma.db.entity.Patient</class>
<class>tr.com.stigma.db.entity.Record</class>
<class>tr.com.stigma.db.entity.User</class>
<properties>
<property name="hibernate.hbm2ddl.auto" value="create" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
<!-- Auto detect annotation model classes -->
<property name="hibernate.archive.autodetection" value="class" />
<!-- Datasource -->
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
<property name="hibernate.connection.username" value="mobilhm" />
<property name="hibernate.connection.password" value="mobilhm" />
<property name="hibernate.connection.url" value="jdbc:mysql://localhost/mobilhm" />
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
</properties>
</persistence-unit>
일부 문자가 DB에 제대로 표시되지 않습니다. 예를 들어 문자 ü는 db로 표시됩니다. MySQL의에서 기본 문자셋은 UTF-8입니다 만들고 손상된 문자를 만드는 나는 =
CREATE TABLE doctor (doctorId int unsigned NOT NULL AUTO_INCREMENT, name varchar(45) NOT NULL, surname varchar(45) NOT NULL, PRIMARY KEY (doctorId)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
내가 MySQL의 가져 오기/내보내기 관리자 데이터를 사용하여 가져올 경우 것이 올바른하지만 hibernate.hbm2ddl.auto를 사용하고 이상한처럼 만드는 테이블을 해요 .
어떻게 해결할 수 있습니까?
편집 : 또한 내가
<property name="hibernate.connection.useUnicode" value="true" />
<property name="hibernate.connection.characterEncoding"
value="UTF-8" />
<property name="hibernate.connection.charSet" value="UTF-8" />
가 persistence.xml을 위해 추가 시도했습니다. 그러나 도움이되지 않았습니다.
수정 : 나는 그것을 결국 풀었다. 나는 Tomcat을 사용하고 있으며 그것은 최대 절전 모드 나 MySQL이 아닌 손상 지점이다. 나는 JAVA_OPTS = -Dfile.encoding = UTF-8 명령으로 시작했고 내 문제는 사라진다.
질문 제목이 오해의 소지가되었습니다. 그 죄송합니다.
+1 올바른 이유가 있지만 테스트가 플랫폼에 따라 다르므로 가정이 올바르지 않습니다. 가장 간단한 해결책은 IDE에서 텍스트 파일 인코딩을 UTF-8로 설정하거나 @Jaroslav Frolikov가 이미 명시한대로 maven을 사용한다면' -Dfile.encoding = UTF8 '입니다. –
여전히 2017 년에는 작동하지 않습니다. – gstackoverflow