今天做功能的時候做到排序,然後 寫sql
String sql= "select * from t_student order by :a";
然後下面用
SQLQuery query = session.createSQLQuery(sql);
String name = "stu_name";
query.setString("a", name);
的時候order by 排序一直沒效果,後來才知道用預編譯是將 stu_name 替換成字符串了。所以就會失效
,sql相當於 select * from t_student oder by "stu_name" 所以不管用。
這時候可以直接寫 "select * from t_student order by"+name ; 這樣的語句,但是注意要做一些邏輯上的判斷和處理。
另外也可以用 string format來處理這種問題。