您的位置:首页 > 其它

动态获取Nhibernate的ORM配置信息,实现系统历史记录功能

2009-02-18 22:08 471 查看
1

问题场景

系统的数据层采用 Spring.net 框架。

项目对数据的要求

1)每一个业务表的业务信息只能注销,不能物理删除(也就是我们经常说的保存历史数据)

2)不能将表的失效信息暴露在实体类中

2 解决流程

解决的流程

Step one 通过Session中的SessionFactory 查找到业务实体类的ORM信息

在这里,我们最关注ORM信息中的有两点

1) 业务实体类 -------- 数据库中表

2) 业务实体类的主键属性 ---数据库中列信息

补充说明:

在这边我们支持类的映射信息配置的主键主要包含了三个组成方式

1 类的主键类型为复合主键且子主键为key-property

2 类的主键类型为复合主键且子键中包含了key-property 也包含了key-many-to-one

3 类的主键类型直接为property

Step Two 根据ORM信息取对应数据库中表的列对应的业务实体属性值

Step Three 将Step Two 提取出来的的信息转化成我们需要数据格式

属性 属性说明

TableName 表名

IdentifierColumnNames 主键对应数据库表中的列名

identifierValues 业务实体中的主键属性值

KeyNum 主键的列数目

Step Four 根据 step three 的信息拼装SQL语句并执行

3类的设计

2
public class ClassMappingInfoBuilder
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐