Mam kolumnę, która potencjalnie ma jakieś złe dane i nie mogę go wyczyścić, więc muszę sprawdzić, czy jest pusty, czy pusty. Robię hibernacji kryteria zapytania więc mam następujące zwracającą nieprawidłowo teraz:W jaki sposób hibernacja używa pustego ciągu dla ograniczenia równości?
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();
nie mogę zmusić go do powrotu poprawnie wyniki będę oczekiwać. Więc jako eksperyment Zmieniłem drugie ograniczenie czytać:
Restrictions.eq("stringColumn", "''")
I zaczęło wracać oczekiwanych rezultatów, więc jest hibernacja nieprawidłowo tłumaczenia mój pusty ciąg znaków (np „”) w SQL pusty ciąg znaków (np „”) czy po prostu robię to źle?
Która baza danych używasz - puste struny mają różne zachowania w różnych DBS – Mark