我在春季工作hibernate
我在我的數據庫表中有一列,它的類型是VARCHAR
,但它存儲的是整數值。所以,如果我使用sql
或hql
或Criteria(Order.asc)
sort
它,一切都整理它作爲字符串。我需要它被存儲的整數值排序。在這裏,我無法改變我的桌子。
反正是有它排序爲使用Criteria
是我唯一的解決辦法是整數,它讀一些名單和排序在我的售後服務?按varchar字段存儲整數值排序表
編輯:我使用MYSQL
謝謝
我在春季工作hibernate
我在我的數據庫表中有一列,它的類型是VARCHAR
,但它存儲的是整數值。所以,如果我使用sql
或hql
或Criteria(Order.asc)
sort
它,一切都整理它作爲字符串。我需要它被存儲的整數值排序。在這裏,我無法改變我的桌子。
反正是有它排序爲使用Criteria
是我唯一的解決辦法是整數,它讀一些名單和排序在我的售後服務?按varchar字段存儲整數值排序表
編輯:我使用MYSQL
謝謝
你可以嘗試排序前鑄造的。在mysql的,這樣的事情:
SELECT CAST(myVarcharField AS DECIMAL(10)) as myIntField order by myIntField;
或無符號整數:
SELECT CAST(myVarcharField AS UNSIGNED) as myIntField order by myIntField;
投似乎是一個有效的HQL expression了。
SQL:
SELECT CAST(t.order AS UNSIGNED INTEGER) AS intOrder
FROM myTable t ORDER BY intOrder ASC
感謝。任何方式與Criteria一起使用? – 2010-12-14 10:05:28
你可以在你的數據庫爲int,取決於你的數據庫的字符串轉換。對於MySQL(作爲一個例子),你有'轉換()'和'CAST()' – cristian 2010-12-14 09:01:06
在哪個數據庫? – 2010-12-14 09:10:52