Ich habe eine Datenbank in der Produktion, wo alle meine Tabellen sind mit utf8 / utf8_general_ci Codierung. Dies funktioniert grundsätzlich gut, außer in einem Szenario.
Für einige Zeichen (Chinesisch usw.) wird ein ??? zurückgegeben; für dieselbe Tabelle werden sie jedoch auch korrekt zurückgegeben, allerdings über ein anderes Kriterium.
Ich habe die Verbindungsparameter von Hibernate zu MySQL zweimal überprüft und sie haben den richtigen Zeichensatz eingestellt.
Ich kann nicht verstehen, wie so etwas passieren kann. Das Kriterium, das die fehlerhaften Zeichen zurückgibt, ist nur ein einfaches findById:
Criteria criteria = getHibernateSession().createCriteria(CalendarEvent.class);
criteria.add(Restrictions.eq("id", id));
return (CalendarEvent) criteria.uniqueResult();
Das Problem tritt nur in der Produktion auf Solaris auf - ich kann es lokal nicht reproduzieren.