您的位置:首页 > 数据库

关于hibernate反响映射文件的总结

2011-08-31 19:30 459 查看
 
1.指定主键后的映射文件:
<class name="javaBean对象" table="数据库中表名 " >
        <id name="javaBean中使用的字段" type="java.lang.String">
            <column name="表中字段" length="长度" />
            <generator class="主键生成方式" />
        </id>
<property name="firmTypeName" type="java.lang.String">
            <column name="firm_typeName" length="20" not-null="true" />
        </property>
</class>
 
2.没有指定主键,数据库中没有id字段的映射文件:
<class name=" javaBean对象" table="数据库中表名" >
  <composite-id name="id" class="包含id的类名">           
<key-property name="名称" type="java.lang.String">
                <column name="名称" length="50" />
            </key-property>
            <key-property name="时间" type="java.sql.Timestamp">
                <column name="时间" length="23" />
            </key-property>
  </composite-id>
 </class>
 
3.没有指定主键,但数据库中存在id字段映射文件:
<class name="com.Test1" table="test1" >
        <composite-id name="id" class="com.test.Test ">
            <key-property name="id" type="java.lang.String">
                <column name="id" length="32" />
            </key-property>
            <key-property name="name" type="java.lang.String">
                <column name="name" length="20" />
            </key-property>
        </composite-id>
</class>
 
总结:如果没有在创建数据库中表的时候指定主键,则用hibernate映射时,会指定为联合主键,即方式2,方式3。当指定了主键后,即方式1。
   在方式1中,主键的字段用<id></id>,加上主键的生成方式,例如:
<generator class="主键生成方式" />,其余属性用<property>。
而在方式2和方式3中(没有指定主键),用<composite-id name="id" class=" ">
包含表中的字段,字段用<key-property>。
 
另外,当数据库中没有指定主键的时候,可以在hibernate中利用指定主键,正常生成反向映射文件的方法,指定数据库中的一个字段为主键,可以重复。
这在数据库中,主键是不允许重复的。
             
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息