posts - 66,  comments - 11,  trackbacks - 0
   对于新系统的设计开发而言,我们应该尽量避免在哭表中引入与业务逻辑相关的主键关系。
    将业务逻辑主键引入库表,将使得底层库表结构与业务逻辑相耦合,之后业务逻辑的变化,将很可能对底层数据库结构产生连带影响。
    复合主键的引入,很大程度上意味着业务逻辑已经侵入到数据存储逻辑之中。因此在新系统的设计过程中,我们应该尽量避免这样的情况出现。
    Hibernate中,通过composite-id节点对复合主键进行定义。
    对于复合主键而言,我们可以通过2种方式确定主键:
    1>基于实体类属性的复合主键
    复合主键由实体类中的属性组成,此时,实体类本身即同事扮演复合主键类的角色。
   
<hibernate-mapping>
    
<class name="com.wyq.hibernate.TUser2" table="T_User2">
        
<composite-id>
            
<key-property name="lastname" column="lastname" type="string"/>
            
<key-property name="firstname" column="firstname" type="string"/>
        
</composite-id>
        
<property name="age" column="age" type="integer">
        
</property>
    
</class>
</hibernate-mapping>
    Hibernate要求复合主键类实现equals和hashcode方法,以作为不同数据之间识别的标志。
    主键类的加载:我们可以将TUser2类对象本身作为查询条件进行检索:
    2>基于主键类的复合主键
    我们可以将主键属性独立到一个单独的类中。实现方法类似,只不过映射文件的composite-id节点要引入class和name属性。
posted on 2009-10-27 22:30 王永庆 阅读(142) 评论(0)  编辑  收藏 所属分类: HIBERNATE

只有注册用户登录后才能发表评论。


网站导航:
 
<2009年10月>
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567

常用链接

留言簿(1)

随笔分类

随笔档案

关注blogs

搜索

  •  

最新评论

阅读排行榜

评论排行榜