日志模块实现
1 实现记录登录用户对各个模块的增加,删除,修改的操作。
同时对部分功能的操作也能记录:比如登录
该部分功能使用hibernate的监听器实现。
能够记录用户操作对象的id
?
2 对系统融合的论坛部分,对需要记录的动作,采用web过滤器来实现。
不能记录用户操作对象的id
?
3 对需要记录用户的操作,采用可配的方式(可配置的xml文档),在系统
启动的时候采用web监听加载数据。
?
4 日志实体类与一年12张表的动态映射实现
修改hibernate源码 org.hibernate.persister.entity.SingleTableEntityPersister
private final String[] qualifiedTableNames---------> private String[] qualifiedTableNames
增加方法:public void setRootTable(String string){ // 可动态修改缓存里面映射的表
?qualifiedTableNames[0] = string;
}
对于实体类必须配置@org.hibernate.annotations.Entity(dynamicInsert = true,dynamicUpdate = true)
因为insert,update语句都是实现生成好的 ,使用dynamicInsert = true,dynamicUpdate = true 可以在,
setRootTable(String string)后,根据object对象的值,生成动态的insert,update语句
?
5 使用threadLocal方式解决数据(用户的信息类,当前请求的对应的映射表)同步问题。
2 楼 peacockbird 2008-12-01 wyfshchaoya 写道