Tengo una columna que potencialmente tiene algunos datos incorrectos y no puedo limpiarla, por lo que debo verificar si hay cadena vacía o nula. Estoy haciendo una consulta Criterios de hibernación, así que tengo los siguientes que devuelve incorrectamente en este momento:¿Cómo hibernate usa una cadena vacía para una restricción de igualdad?
Session session = getSessionFactory().openSession();
Transaction tx = session.beginTransaction();
Criteria myCriteria = session.createCriteria(Object);
...
myCriteria.add(Restrictions.or(Restrictions.isNull("stringColumn"),
Restrictions.eq("stringColumn", "")));
List<Objects> list = myCriteria.list();
no puedo conseguirlo para volver adecuadamente los resultados que cabe esperar. Así como un experimento cambié la segunda restricción para leer:
Restrictions.eq("stringColumn", "''")
y comenzó a devolver los resultados esperados, por lo que es de hibernación de forma incorrecta la traducción de mi cadena vacía (por ejemplo, "") en una cadena vacía SQL (por ejemplo '') ¿O solo estoy haciendo esto mal?
Qué base de datos se está utilizando - cadenas vacías han comportamiento en diferentes DBS diferentes – Mark