问题:就是把排序的列名和方向动态传入select中,一开始用的是 <isNotNull property="sortColumn"> ORDER BY #sortColumn# #direct#</isNotNull>,结果没有排序,但把sql复制到plsql下是结果正确排序了,搞了好久都想不明白是什么问题,真是无从下手,后来改成写死在sql中时,发现排序正确,无语了。
后来,想到了,用$符号时,可以直接写入到sql,就改用<isNotNull property="sortColumn"> ORDER BY $sortColumn$ $direct$</isNotNull>
结果正确了。
select * from (select row_.*,rownum rownum_ from (
SELECT
u.*,r.c_role_name FROM s_aduser u, s_role r WHERE u.c_role_id=r.id
and
u.i_delete=0
<isNotNull property="key"> AND ( r.c_role_name LIKE '%$key$%' OR u.c_login_id LIKE '%$key$%' OR u.c_name LIKE '%$key$%' OR u.c_email_addr LIKE '%$key$%') </isNotNull>
<isNotNull property="sortColumn"> ORDER BY $sortColumn$ $direct$</isNotNull>
) row_ ) where rownum_ <![CDATA[<=]]> #to# and rownum_<![CDATA[>=]]>#from#