मैं डीबी को अपना विकास डेटा लिखने के लिए import.sql का उपयोग कर रहा हूं। मैं MySQL सर्वर 5.5 का उपयोग कर रहा है और मेरे persistence.xml यहाँ है:हाइबरनेट/जेपीए 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>
कुछ वर्ण मेरी import.sql में डीबी में सही ढंग से नहीं दिखाया गया है। उदाहरण के लिए चरित्र ü डीबी में ü हो जाता है। 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 को जोड़ने की कोशिश की है। लेकिन यह मदद नहीं की।
फिक्स: मैंने इसे अंततः हल कर लिया है। मैं टोमकैट का उपयोग कर रहा हूं और यह भ्रष्टाचार का मुद्दा हाइबरनेट या माइस्क्ल नहीं है। मैंने इसे सेट JAVA_OPTS = -Dfile.encoding = UTF-8 कमांड के साथ शुरू कर दिया है और मेरी समस्या दूर हो गई है।
प्रश्न का शीर्षक अब भ्रामक हो गया। उसके लिए खेद है।
+1 सही कारण के लिए +1, हालांकि धारणा सही नहीं है, क्योंकि तब आपके परीक्षण मंच-निर्भर होंगे। सबसे आसान समाधान टेक्स्ट आईडी एन्कोडिंग को आपके आईडीई में 'यूटीएफ -8' पर सेट करना है या' -Dfile.encoding = UTF8 'अगर मैवेन का उपयोग @ जारोस्लाव फ्रोलिकोव के रूप में पहले से ही किया गया है। –
यह अभी भी 2017 में काम नहीं करता है – gstackoverflow