UTF-8 mit Hibernate und MySQL

Damit MySQL mit Hibernate UTF-8 kodierte Zeichen richtig speichert, muss man die jdbc-URL um ein paar Parameter erweitern, so dass sie ungefähr so aussieht:

jdbc:mysql://127.0.0.1:3306/meine_datenbank?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8

Ohne diese Modifikation werden UTF-8 Sonderzeichen als Fragezeichen abgespeichert.

Gefunden auf: http://www.isocra.com/2007/01/utf-8-with-hibernate-30-and-mysql/

Problem mit Boolean in Hibernate mit MySQL

Wenn Hibernate mit MySQL und MySQLDialect oder MySQL5Dialect genutzt wird, kann es sein, dass der Datentyp Boolean nicht richtig funktioniert. Und zwar legt Hibernate ein Boolean-Feld in MySQL als BIT(1) an, womit scheinbar der JDBC-Treiber nicht klarkommt.

Damit Boolean-Felder mit Hibernate/MySQL richtig funktionieren, kann und sollte man den Datentyp des Feldes auf TINYINT(1) setzen. Mit Annotations geht das beispielsweise so:

@Column(columnDefinition="TINYINT(1)")
private boolean disabled;

Zum Nachlesen: Der Bugreport HH-468 von Hibernate über diesen Fehler.