读书人

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

发布时间: 2012-05-23 13:44:13 作者: rapoo

【求助】 我想拦截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可能导致内存泄露等严重后果。
[解决办法]
帮顶,没有好的解决办法。

读书人网 >J2EE开发

热点推荐