您的位置:首页 > 其它

风继续吹----对一些ORM框架的使用心得(2)

2006-04-10 18:17 288 查看
如今到处的谈论着OOP,我想这个世界原本是很复杂的!
我们把职责单一到一个类去,维护一个类固然简单了,但是随着而来的关系却很让人头痛.

Hibernate是一个优秀的ORM工具.可以让这个框架为你做很多事.他们说可以把对象到数据库的映射工作量大大降低,实体之间的关系可以非常简单地进行配置.

但是我发现正如<<Joel说软件>>,被包装和抽象的东西约多,我们的应对意外的能力就约低了.

在hibernate的配置文件了,如果你要配置一个组有很多用户.可能config如下:

<bag name="Users" table="OrgUsers" lazy="false" inverse="false" >
<key column="Org_ID" />
<many-to-many class="QPG.Support.Data.User, Support.Data" column="User_ID" />
</bag>
<bag name="ACL" table="AccessRights" lazy="true">
<key column="Org_ID" />
<one-to-many class="QPG.Support.Data.AccessToResource, Support.Data" />
</bag>
随着业务的发展,将来很可能就比较多事情了....

在我们的事件中,总结了一个集中处理一对多的思想:
1) 把关系集中到一个表,用Catalog区分是什么关系,比如GroupUsers就是一个组到多个用户的那种关系.
2) 这个关系实体数据就由hibernate替我们自动保存了;
3) 使用OneToMany<T1,T2>来获取关系数据,比如new OneToMany<Group,User>(theGroup,theUserArray)

下面就看看我们的通用DAO吧:

注意:BasicData里只有ID这个所有实体都要的属性而已.

alex 4-10
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: