2024. június 2., vasárnap

Gyorskeresés

Útvonal

Cikkek » Számtech rovat

Hibernate őű-hiba

  • (f)
  • (p)
Írta: |

Egy apró programot fejlesztettem Java-ban, gondoltam JDBC helyett tanulok valami kényelmesebbet.

[ ÚJ TESZT ]

Egy apró programot fejlesztettem Java-ban, gondoltam JDBC helyett tanulok valami kényelmesebbet. Így esett a választásom a Hibernate-ra.

Egy excel fájlból töltöttem fel MySQL táblát. Persze rögtön észrevettem, hogy az ő/ű helyett ? jelenik meg, de gondoltam, majd a végére hagyom a megoldást.
Nem volt könnyű megtalálni.

Mivel a többi ékezet jó volt, gyanítottam, hogy valami latin1-es tárolási gond lesz.
A MySQL tábla dumpja meg is mutatta, hogy bizony a default charset latin1, a kívánatos utf8 helyett.

(Ez előtt persze sok-sok kört futottam azzal, hogy az excel fájlt különböző karakterkódolásokkal mentettem el meg olvastam be Java-val, meg mindenfélét állítgattam a connection stringen meg a hibernate.cfg.xml-ben.)

Most már csak ki kellett találnom, hogy hozathatnám létre a táblákat a Hibernate-tel úgy, hogy utf8 kódolással tárolja a karaktereket.

Ilyen beállítást nem találtam.

Szerencsére belefutottam egy friss blogba, íme a megoldás:

1. Kell egy saját dialektus:

import org.hibernate.dialect.MySQLMyISAMDialect;

public class MySQLDialectUtf8 extends MySQLMyISAMDialect {
@Override
public String getTableTypeString() {
return " ENGINE=MyISAM DEFAULT CHARSET=utf8";
}
}

2. a hibernate.cfg.xml-be pedig ez:

<property name="dialect">util.MySQLDialectUtf8</property>

(Én a "util" package-embe tettem)

Köszönet az infóért : [www.my-container.de]

Azóta történt

Hirdetés

Copyright © 2000-2024 PROHARDVER Informatikai Kft.