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

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

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

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

风继续吹----对一些ORM框架的使用心得(2) <bag name="Users" table="OrgUsers" lazy="false" inverse="false"  >
风继续吹----对一些ORM框架的使用心得(2)            
<key column="Org_ID" />
风继续吹----对一些ORM框架的使用心得(2)            
<many-to-many class="QPG.Support.Data.User, Support.Data" column="User_ID" />
风继续吹----对一些ORM框架的使用心得(2)          
</bag>
风继续吹----对一些ORM框架的使用心得(2)          
<bag name="ACL" table="AccessRights" lazy="true">
风继续吹----对一些ORM框架的使用心得(2)             
<key column="Org_ID" />
风继续吹----对一些ORM框架的使用心得(2)             
<one-to-many class="QPG.Support.Data.AccessToResource, Support.Data"  />
风继续吹----对一些ORM框架的使用心得(2)              
</bag>

随着业务的发展,将来很可能就比较多事情了....

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

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

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

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

alex 4-10





 

相关文章:

  • 2021-11-23
  • 2021-09-04
  • 2022-02-01
  • 2021-12-27
  • 2021-04-27
  • 2021-06-04
  • 2021-07-12
  • 2021-09-17
猜你喜欢
  • 2021-05-25
  • 2021-12-19
  • 2022-01-05
  • 2021-07-07
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案