caso de búsqueda sensible MYSQL (usando Hibernate) para UTF-8
-
12-09-2019 - |
Pregunta
He Login tabla que tiene juego de caracteres UTF-8 UTF-8 y el cotejo cuando quiero comprobar el nombre de usuario y recuperar otra información para este nombre de usuario específico de la consulta HQL dame el mismo resultado con letras minúsculas y mayúsculas. lo que debe hacer por mi consulta HQL que trabajan caso sesitive Utilizo MySQL 5 y Java hibernarte
Este es mi consulta:
return queryManager.executeQueryUniqueResult("select b.login from BranchEntity b where b.userName = ?", username);
Solución
La forma más fácil es cambiar la definición de la columna a utilizar el cotejo entre mayúsculas y minúsculas como utf8_bin
.
Otros consejos
Añadir clase
public class CollateDialect extends MySQLDialect {
@Override
public String getTableTypeString() {
return " COLLATE utf8_bin";
}
}
y utilizarlo:
cfg.setProperty("hibernate.dialect", "org.kriyak.hbm.CollateDialect");
esto hará que entre mayúsculas y minúsculas todas las consultas que hace mucho más SENCE.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow