We are testing in Portugese and find that if a query condition contains "special" characters such as ã and é the query does not work properly. HOWEVER if we use Hibernate Criterion the query works.
These characters have integer representations above 128, which may be relevant.
Deep in the query code (inside Hibernate) I see that the string in question does not show properly in the debugger when it is converted to a PreparedStatement. That is, the string shows fine but the toString() on the PreparedSTatement has the chars in question replaced by the little box that indicates a character is unknown.
We are using MySQL 4.1 and mysql-connector-java-3.0.16-ga.jar with the following mysql-ds.xml
<?xml version="1.0" encoding="UTF-8"?> <datasources> <local-tx-datasource> <jndi-name>MySqlDS</jndi-name> <connection-url>jdbc:mysql://localhost:3306/imsma</connection-url> <driver-class>com.mysql.jdbc.Driver</driver-class> <user-name>imsma</user-name> <password>password</password> <min-pool-size>20</min-pool-size> <max-pool-size>45</max-pool-size> </local-tx-datasource> </datasources>