Как выполнить Restrictions.like на целое поле - PullRequest
0 голосов
/ 24 февраля 2011

У меня есть целочисленное поле в БД (Postgresql) и мой файл отображения гибернации, который я хочу использовать в аналогичной операции (например, Restrictions.like(Bean.fieldname,'123')).

База данных не поддерживает like для целых чисел без явного приведения типов select * from table where text(myint) like '1%'. В идеале я хотел бы сохранить тип поля БД и тип свойства Hibernate как integer s и не должен загружать все поля из БД для итерации в коде Java.

ура :) 1009 *

Ответы [ 3 ]

4 голосов
/ 24 февраля 2011

Если значение действительно число , я бы просто ограничил его диапазоном - например, больше или равно 100 и меньше 200. Я бы не подумал, что вам действительно нужно «все числа, начинающиеся с 1», - это говорит о том, что 1 и 10000 похожи, а 1 и 2 совершенно разные. Информация в числе почти всегда должна относиться к ее величине, а не к цифрам от ее десятичного представления.

0 голосов
/ 12 июня 2014

Restrictions.sqlRestriction ("CAST ({alias} .myint AS CHAR) как?", "% 1%", Hibernate.STRING));

0 голосов
/ 24 февраля 2011

Зачем тебе НРАВИТСЯ? Это очень странное сравнение, поэтому он не является целочисленным оператором.

Вы можете преобразовать значение в базе данных в text / varchar, но вы снизите производительность, если не создадите и специальный индекс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...