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

来源:互联网 发布:telnet查询端口号 编辑:程序博客网 时间:2024/05/01 20:24
 

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中利用指定主键,正常生成反向映射文件的方法,指定数据库中的一个字段为主键,可以重复。

这在数据库中,主键是不允许重复的。

             

 

原创粉丝点击