今天做功能的时候做到排序,然后 写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来处理这种问题。