风继续吹----对一些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
我们把职责单一到一个类去,维护一个类固然简单了,但是随着而来的关系却很让人头痛.
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
相关文章推荐
- 冷眼程序人生----对一些ORM框架的使用心得
- 使用amChart的一些心得
- listview使用的一些心得
- 关于WdatePicker控件的一些使用心得
- Qt使用多线程的一些心得
- 关于Fragment的一些使用心得-跳转和返回栈实战浅析
- 最近使用 foobar2000 的一些心得
- BerkeleyDB使用的一些心得
- SCA/Tuscany的一些使用心得(二) -DefaultSCADomain与组合构件(composite)
- xcode6 方形stoaryboard使用的一些心得
- 使用JTAG的一些心得
- 最近使用QT开发的一些心得,技巧
- NGUI研究之开发项目的一些使用心得比较细节
- Qt使用多线程的一些心得——2.继承QObject的多线程使用方法
- JAVA Swing图形库一些使用心得
- 在struts2下使用jQuery的Ajax方法的一些心得
- JQquery的一些使用心得分享
- 关于Iframe跨域,判断加载等的一些使用心得
- 风声日期时间选择器的一些小小的使用心得
- 关于使用Java开发工具的一些心得