Я переношу некоторые из своих hql-операторов в Criterias. Теперь я выясняю одну проблему: . Свойство entity - это тип Integer, но мне нужно использовать поиск подстановочных знаков, поэтому в hql I doКритерий спящего режима, целое число и «как»
session.createQuery("from P1 where id like :id").setString("id", "%"+s+"%")
Нет проблем вообще, Hibernate casts String to Integer.
Если бы я попробовать это в критериях, я только получить ClassCastException
String cannot be cast to Integer
Criteria crit = sessionFactory.getCurrentSession().createCriteria(P1.class);
crit.add(Restrictions.like("id",s)).addOrder(Order.asc("id")).setMaxResults(maxResults);
Почему Hibernate обрабатывать обе эти ситуации по-разному?
Это не имеет смысла. Сам механизм запросов способен управлять этим, но механизм критериев не работает. Похоже, есть ошибка в citeria impl. – onigunn