Geliştirme verilerimi DB'ye yazmak için import.sql kullanıyorum. Ben MySQL Server 5.5 kullanıyorum ve benim persistence.xml burada: my import.sql içindeHazırda bekletme/JPA import.sql utf8 karakterleri bozuk
<?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>
Bazı karakterler DB doğru gösterilmez. Örneğin, karakter ü db'de becomes olur. MySQL Standart charset utf-8 ve oluşturmak bozuk karakterler yapar I =
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;
Ben MySQL ithalat/ihracat müdürü verileri kullanılarak import eğer doğru ama hibernate.hbm2ddl.auto kullanarak olduğuna garip gibi oluşturarak tablolar değilim .
Bunu nasıl çözebilirim?
Düzenleme: Ayrıca ben
<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 ekleyerek denedim. Ama yardımcı olmadı.
Düzeltme: Sonunda çözdüm. Tomcat kullanıyorum ve bu, hazırda bekletme veya mysql olmayan bir noktadır. Ben set JAVA_OPTS = -Dfile.encoding = UTF-8 komutu ile başladım ve benim sorunum gider.
Şimdiki soru başlığı yanıltıcı oldu. Bunun için özür dilerim.
+1 doğru nedenle, ancak varsayım doğru değildir, çünkü testleriniz platforma bağlı olacaktır. En basit çözüm, daha önce belirtildiği gibi @Jaroslav Frolikov gibi maven kullanılıyorsa, IDE-8 kodlu metin dosya kodlamasını IDE veya ' -Dfile.encoding = UTF8 ' olarak ayarlamaktır. –
Hala 2017'de çalışmıyor – gstackoverflow