Java: кодировка в Hibernate

Возникла ситуация, в которой при сохранении не-англоязычного текста в базу сохранялись вопросики. Понятно что дело в кодировке подключения к БД (хотя так же может быть и кодировка таблиц, если не юникод). Используется Hibernate 3 из-под бинов Spring 3.0.2

Кусок конфигурации из applicationContext.xml, где устанавливается DataSource (в нём и задаются настройки подключения)


Гугл подсказывает сразу же что кодировка задаётся в свойстве url, с помощью параметров autoReconnect, useUnicode, characterEncoding, в формате схожем с GET-запросом – через амперсанд.
Пример:


Внимание: & – это НЕ ОШИБКА, именно такая запись нужна, в 5 символов. Просто амперсанды указывать нельзя, иначе xml парсер спринга подумает что это спец-знаки. Не понимаю, почему на многих форумах стоят просто амперсанды – которые и приводят в замешательство читателей :)

Если вы всё таки прочитав форумы указали не & а &, то будет следующая ошибка

SEVERE: null
org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 15 in XML document from class path resource [applicationContext.xml] is invalid; nested exception is org.xml.sax.SAXParseException: The reference to entity "useUnicode" must end with the ';' delimiter.
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:396)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178)
......
Caused by: org.xml.sax.SAXParseException: The reference to entity "useUnicode" must end with the ';' delimiter.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:174)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:388)
.......