剛才在做一個按照problemId(資料庫中存盤用的是bigint)進行排序的功能
mybatis中是這樣寫的
<choose>
<when test="sort != null and sort.trim() != ''">
order by ${sort} ${order}
</when>
<otherwise>
order by `problem_id` asc
</otherwise>
</choose>
然后我排序之后,發現居然是按照ascii碼進行的排序,這顯然不行。。然后我去資料庫又看了下,
SELECT * FROM `test_problem` ORDER BY problem_id asc;
結果是正常的,,并沒有按照ascii碼來進行排序,那么問題就出現在mybatis決議了。。
然后我按照百度的方法給${sort}后面加了個0,果然奏效,但是很明顯,這樣肯定會存在很大的效率問題。。所以這種情況到底該怎么解決呢?
uj5u.com熱心網友回復:
你確定是整數資料型別?你那是字符型別,只是存的是純數字吧uj5u.com熱心網友回復:
絕對是bigint,童叟無欺
uj5u.com熱心網友回復:
如果是varchar的話,那我在資料庫中直接排序的話結果就不可能是又按照數字去排的啊
uj5u.com熱心網友回復:
mybatis默認下不會去調整你的排序;如果發現資料變了,看看是不是有插件或者aop做了啥東西uj5u.com熱心網友回復:
我在bootstarp_table里面設定了sortable=true后,傳到mybatis--》${sort}就是problemId欄位,對了,有沒有可能是order by problemId的問題,本來應該是problem_id的?uj5u.com熱心網友回復:
果然,就是這兒的問題。。。。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/255006.html
標籤:Java EE
