论坛首页 入门讨论版 Hibernate

帖子被移走,感到很遗憾!

浏览 829 次
该帖已经被评为新手帖
作者 正文
最后更新时间:2008-02-26
所以才说是架构有问题
所有的表默认都应该有 creatuser和updateuser字段的  而不是非要通过打log的方式来让客户查找

p.s:你要是非想要session可以试试去改p6spy的源代码  不过估计很困难
   
0 请登录后投票
最后更新时间:2008-02-26
jackie0525 写道
robbin 写道
jackie0525 写道
robbin 写道
这还就是一个新手贴,听说过P6SPy吗?

听说过!并且已经下载下来研究了。
但目前的需求是log的格式有严格的要求,并要从session中取得用户id。而且只要记录update, insert, delete种类的sql语句,不能记录select类型的sql。请问这些需求P6SPy能实现么?

SQL和http session是毫无关系的两码事,不存在任何对应关系。你的需求本身就是错误的。

这个我也知道,但不知道你是否做过日本的软件开发项目,这种需求在对日软件开发中非常常见,主要就是为了记录下某个用户在某个时刻对数据库做了什么修改,所以只要求记录那些对数据库产生影响的sql,像select这种检索语句则不需要记录。在不使用hibernate而是使用传统的jdbc开发的时候,这种需求是很容易实现的。但目前的问题就是因为项目使用了hibernate,所以无法在程序代码中得到sql语句。


所以说你的需求本身是错误的,既然原始需求是记录数据库被更改的情况,那就压根不应该从SQL入手。你可以使用Hibernate Interceptor对所有的持久化对象进行拦截,侦听持久对象状态改变,并且记录相应的事件。Session信息可以从ThreadLocal的方式传递给Interceptor。

BTW: 像这种数据审计的功能,正好是Hibernate的强项,即便你原来用JDBC的时候记录SQL,其实也是笨办法。
   
0 请登录后投票
最后更新时间:2008-03-03

    
   
0 请登录后投票
最后更新时间:2008-03-18
不知lz是不是要这些例子
http://blogger.org.cn/blog/more.asp?name=gareth&id=32005
http://blog.csdn.net/shuailee/archive/2007/11/28/1905261.aspx
   
0 请登录后投票
论坛首页 入门讨论版 Hibernate

跳转论坛:
JavaEye推荐