У меня есть столбец, в котором потенциально содержатся некоторые неверные данные, и я не могу его очистить, поэтому мне нужно проверить наличие пустой или пустой строки. Я делаю запрос Hibernate Criteria, поэтому у меня есть следующее, которое сейчас возвращает неверно:
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();
Я не могу заставить его правильно возвращать ожидаемые результаты. Поэтому в качестве эксперимента я изменил второе ограничение следующим образом:
Restrictions.eq("stringColumn", "''")
И он начал возвращать ожидаемые результаты, поэтому hibernate неправильно переводит мою пустую строку (например, "") в пустую строку SQL (например, ''), или я просто делаю это неправильно?