hibernate SQLQuery 获取不带参数的sqlSQLQuery sqlQuery = session
.createSQLQuery("SELECT DISTINCT C.MODEL_SERIAL||'--'||C.MODEL_NAME,C.MODEL_NAME FROM C_MODEL_DESC_V C LEFT JOIN  R_MO_BASE_V R "
+ " ON C.MODEL_NAME=R.MODEL_NAME WHERE R.CUST_CODE=:customerCode  AND C.SCHEMA_NAME=:schemaName and route_code>0  ORDER BY C.MODEL_NAME");
sqlQuery.setParameter("customerCode", customerCode);
sqlQuery.setParameter("schemaName", schemaName);
怎么獲取最終不帶參數sql? 

解决方案 »

  1.   

    运行一遍,在return sqlQuery.list();前加断点,执行完这句话,控制台就会自动打印sql语句了,而且是参数值都已经设进去了
      

  2.   

    根据经验,在show_sql = true的情况下,输出的还是有参数的SQL。
    所以,你要想拿到最终的SQL,必须到数据库里,打开常规日志,让它输出所有的SQL语句。
      

  3.   

    老紫竹方法可以抓出sql 
    但是我要在java里實現。因為我用最終sql放到session 里,方便用來導報表。
      

  4.   

    ....笨办法,把你的整个SQL语句再放到另个BUFFER里,把参数进行替换成真实数据
      

  5.   

    目前我解決方法:Map的保存參數和值
    然后循環replace的帶參數sql和LaZY_GUY 的想法一樣。
      

  6.   

    我也遇到这类似的需求了 需要将所有操作的hibernate 生成的hql存到数据库。期待解决