首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

小弟我想拦截hibernate生成的sql语句

2012-05-23 
【求助】 我想拦截hibernate生成的sql语句hibernate ormObject ---》 sql ---》execute ----》 resultset -----

【求助】 我想拦截hibernate生成的sql语句

  hibernate orm

  Object ---》 sql ---》execute ----》 resultset -----》 Obeject

   

  我的意思就是在生成sql语句 且未进入数据库之前 把sql语句改变下


  请问有途径么?传授下、谢谢
 

[解决办法]
你可以使用 Query.createSQLQuery 方法解决你需要的吧。。
[解决办法]
看看官方文档吧http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/events.html
还有这篇http://www.iteye.com/topic/866142

主要就是继续EmptyInterceptor,重载onPrepareStatement(sql)方法
[解决办法]
insert的參數不是你自己加進去的嗎?直接從你的實體中get出來。
[解决办法]
想跟你说怎么做,又怕滥用害了你,还是算了吧。。。。。。
[解决办法]
还是偷偷说吧,其实我觉得主要矛盾不是去破解“参数值”,所以我建议的思路是借助ThreadLocal:
——在准备SQL时,把需要的信息放入ThreadLocal;
——在onPrepareStatement时,取得所需要的信息,然后干你想干的事情。


警告:滥用ThreadLocal可能导致内存泄露等严重后果。
[解决办法]
帮顶,没有好的解决办法。

热点排行