Я обновляю API Hibernate Criteria до API JPA2 Criteria и сталкиваюсь со следующей проблемой, которую, похоже, не могу решить.
В Критериях гибернации я использовал Restrictions.sqlRestriction для проверки определенного типа подмножества строк:
criteria.add(Restrictions.sqlRestriction("{alias}.location_key = left((?), length({alias}.location_key))", searchObj.getLocationKey(), Hibernate.STRING));
По сути, это проверяет, что первые N
буквы входной строки соответствуют ключу location_key, длина которого N
букв. То есть входная строка Canada,ON
должна соответствовать чему-либо вроде: Canada
, или Can
или C
.
Проблема в том, что JPA2 не позволяет нам так кодировать нативный sql, и я не уверен, как можно добиться чего-то подобного без функции left
(которая, я думаю, может быть специфичной для mysql).
Любая помощь приветствуется!