Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Hibernate. String to Integer convert.


Автор: chief39 22.1.2008, 15:53
Всем превед.

Просто до безобразия, но:

Есть стринговое поле domain объекта. Оно содержит число.
Для выборочки необходимо условие типа "поле1 > 500".
Есть ли хибернейтовские встроенные конверт-функции?
Или красивый выход.


ЗЫ: поле стринговое и это не обсуждается.
ЗЗЫ: СУБД, в принципе, не одна.

У кого практико такое есть?

Автор: mindflyer 22.1.2008, 18:08
В документации хибера в разделе "14.10. Expressions" есть такие штуки:
# str() for converting numeric or temporal values to a readable string
# cast(... as ...), where the second argument is the name of a Hibernate type, and extract(... from ...) if ANSI cast() and extract() is supported by the underlying database 

Возможно, cast тебе подойдёт.
PS: Сам не пробовал.

PPS: если числа строго положительные, то может прокатит просто сравнение строк? Типа field_int > '500'

Автор: Kangaroo 22.1.2008, 18:11
Цитата(mindflyer @  22.1.2008,  17:08 Найти цитируемый пост)
PPS: если числа строго положительные, то может прокатит просто сравнение строк? Типа field_int > '500'

строка "1000" будем меньше "500"

Автор: mindflyer 23.1.2008, 12:01
Цитата(Kangaroo @  22.1.2008,  18:11 Найти цитируемый пост)
строка "1000" будем меньше "500"

Действительно. Никогда не проверял, но почему-то предполагал, что длина строки учитывается при сравнении...

Автор: chief39 25.1.2008, 16:04
Если кому-то интересно:

Код

SELECT ....
FROM ...
AND CAST(ind.sectorCode, big_decimal) > 900 

работает.

mindflyer, ещё раз сенкс за наводку

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)