2012-02-03 3 views
-2

Хочет спросить, как добавить ограничение на результат фильтрации по столбцам ид IntegerHibernate, как добавить ограничение на результат фильтрации по столбцам ид Integer

мне нужно что-то вроде

Restriction.like("id", myFilterValue) // идентификатора Integer первичного ключа

+0

Это очень простые вопросы. Чтение hibernate docs http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/querycriteria.html – hop

ответ

1

Если вы хотите получить объект по его первичному ключу в Hibernate, вы можете использовать Session.get():

Foo foo = session.get(Foo.class, id); 

В противном случае, если вы хотите добавить ограничение равенства с использованием критериев:

Criteria crit = session.createCriteria(Foo.class); 
crit.add(Restrictions.eq("id", id); 
List foos = crit.list(); 

Я полагаю, что если то, что вы действительно хотите, чтобы найти все строки, где десятичные цифры числового столбца содержат определенную подстроку цифр, то вам нужно, чтобы столбец CAST был равен VARCHAR (синтаксис которого может различаться между базами данных, и вы не указали, какой из них используете), а затем вы сможете использовать что-то вроде WHERE CAST(id AS VARCHAR) LIKE '%12%'. Но если вы это делаете, вам может потребоваться пересмотреть то, что вы пытаетесь достичь на гораздо более высоком уровне, поскольку это привело бы меня к мысли, что может возникнуть проблема с базовым дизайном вашей системы.

+0

Мне нужно получить список объектов (например, у меня есть строки в таблице с идентификатором 123, 1233, 23123, 12 ...) и хотите найти объекты с идентификатором типа «12» – TarasLviv

+0

Я пробовал Restrictions.sqlRestriction («id like»% »+ myFilterValue + '%' '), но все еще не работает – TarasLviv

+0

Вы имеете в виду, 'id' содержит цифры (например)" '12'" в любом месте внутри номера? В большинстве баз данных вы не можете делать это с целыми столбцами ('LIKE' работает только для строк), и похоже, что у вас может быть более фундаментальная проблема с дизайном вашей схемы, если это действительно то, что вы хотите сделать –