Database comparación de cadenas independiente con JPA

Estoy trabajando con JPA (Hibernate como proveedor) y una base de datos MySQL subyacente.

Tengo una tabla que contiene todos los nombres de calles en Alemania. Cada nombre de calle tiene un número único. Para una tarea, tengo que averiguar el número del nombre. Para hacer esto, escribí una consulta JPQL como la siguiente

"SELECT s FROM Strassencode s WHERE s.name = :name"

Desafortunadamente, hay nombres de calles en Alemania que solo difieren en letras minúsculas y mayúsculas como "Am kleinen Feld" y "Am Kleinen Feld". Obviamente, uno de ellos es incorrecto gramaticalmente, pero como un nombre para una calle, se permiten ambos deletreos y ambos tienen un número diferente.

Cuando envío mi consulta JPQL a la base de datos, estoy usando

query.getSingleResult();

porque el hecho de que cada nombre de calle en la tabla es único. Pero con la base de datos MySQL subyacente, obtendré unNonUniqueResultException, porque una base de datos mySQL está haciendo una comparación entre mayúsculas y minúsculas por defecto. La forma común de forzar mySQL es escribir una consulta como

SELECT 'abc' LIKE BINARY 'ABC';

Como se describe en el capítulo 11.5.1 del Manual de referencia de mySQL, pero no hay una palabra clave correspondiente en JPQL.

Mi primer intento fue anotar el camponame en la clase con

@Column(nullable = false, columnDefinition = "varbinary(128)")

Anotando así, la base de datos está haciendo automáticamente una comparación de mayúsculas y minúsculas, porque una de las cadenas es binaria. Pero cuando uso esta solución, me encuentro con problemas cuando leo los nombres de la base de datos, para escribirlos en un archivo, porque las letras como ä, ö, ü se interpretan mal entonces.

Sé que el camponame debería obtener unaConstraint única y es uno de mis objetivos hacerlo, pero esto solo es posible si la base de datos hará una comparación de cadenas entre mayúsculas y minúsculas.

Existe una solución en la que pueda configurar JPA para hacer una comparación de cadenas sensible a mayúsculas y minúsculas sin tener que ajustar manualmente la base de datos?

Respuestas a la pregunta(3)

Su respuesta a la pregunta