2012-02-03 38 views
-2

想問一下如何通過整數ID列添加限制過濾結果休眠如何通過整數ID列添加限制過濾結果

我需要這樣的東西

Restriction.like("id", myFilterValue) // id爲整數主鍵

+0

這是一個非常基本的問題。閱讀hibernate文檔http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/querycriteria.html – hop 2012-02-04 08:02:02

回答

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

我需要獲取對象列表(例如,我有表中的行ID 123,1233, 23123,12 ...),並希望找到id爲'12'的對象 – TarasLviv 2012-02-03 11:27:34

+0

我嘗試了Restrictions.sqlRestriction(「id like'%」+ myFilterValue +'%''),但仍然無法正常工作 – TarasLviv 2012-02-03 11:33:56

+0

您的意思是「id」包含數字中任何位置的數字(例如)「'12」?在大多數數據庫中,你不能使用整數列('LIKE'僅適用於字符串),並且聽起來你可能對你的模式有一個更基本的設計問題,如果這真的是你想要做的 – 2012-02-03 12:19:00