zoukankan      html  css  js  c++  java
  • Hibernate复合主键使用组件方式的hbm.xml配置与集合配置

    <composite-id name="id" class="com.domin.UsersId">
                <key-property name="username" type="java.lang.String">
                    <column name="USERNAME" length="20" />
                </key-property>
                <key-property name="birthdate" type="java.sql.Timestamp">
                    <column name="BIRTHDATE" length="19" />
                </key-property>
    </composite-id>
    

    直接使用表配置集合元素:

    <set name="emails" table="EMAILS">
    	<key column="USERID" foreign-key="ID" />
    	<element type="string" column="EMAIL" />
    </set>
    

    <key>指定:table所指定的表的外键字段(column="USERID"),和引用当前表的字段(foreign-key="ID")
    <element>指定:集合set中元素对象(emails属性)的映射(对应于表EMAILS中的EMAIL字段)。 
    这种情况适用于集合set中元素是基本类型(如string,double等),如果是复合类型(如某个对象),可以有两种配置方法:
    (1)如果该对象没有专门配置映射,只在此处使用,则使用组件配置方式

    <set name="images" table="IMAGE" >
    	<key column="PRODUCT_ID" foreign-key="ID" />
    	<component-element class="com.domim.Image">
    		<property name="filename" column="FILENAME" />
    		<property name="path" column="PATH"/>
    	</component-element>
    </set>	
    

    (2).该对象有专门的映射配置,则使用一对多配置方式

    <set name="images" inverse="true">
          <key column="PRODUCT_ID" foreign-key="ID" /> 
           <one-to-many class="com.domin.Image" />
     </set>
    

      

  • 相关阅读:
    poj 3068 Bridge Across Islands
    XidianOJ 1086 Flappy v8
    XidianOJ 1036 分配宝藏
    XidianOJ 1090 爬树的V8
    XidianOJ 1088 AK后的V8
    XidianOJ 1062 Black King Bar
    XidianOJ 1091 看Dota视频的V8
    XidianOJ 1098 突击数论前的xry111
    XidianOJ 1019 自然数的秘密
    XidianOJ 1109 Too Naive
  • 原文地址:https://www.cnblogs.com/tazi/p/2283892.html
Copyright © 2011-2022 走看看