加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

*.hbm.xml映射文件的元素及属性

发布时间:2020-12-16 05:58:54 所属栏目:百科 来源:网络整理
导读:1、 每个持久化对象都需要提供一个以类名命名的映射文件,映射文件需要放在和 po 类同一目录下。 2、 如下是 wefepo 的映射文件: hibernate-mapping class name="com.lovo.po.WifePO" table="t_wife" id name="id" column="w_id" type="int" generator clas

1、每个持久化对象都需要提供一个以类名命名的映射文件,映射文件需要放在和po类同一目录下。

2、如下是wefepo的映射文件:

<hibernate-mapping>
<class name="com.lovo.po.WifePO" table="t_wife">
<id name="id" column="w_id" type="int">
<generator class="foreign">
<param name="property">myMan</param>
</generator>
</id>
<property name="name" column="w_name" type="string"></property>
<property name="age" column="w_age" type="int"></property>
<one-to-one name="myMan" class="com.lovo.po.HusbandPO"
cascade="all">
</one-to-one>
</class>
</hibernate-mapping>

1)<class>元素用于指定需要映射的类和表,name属性指定类名,table属性指定表表名。

2)<id>元素用于设置持久化类的OID与表主键的映射关系,name属性指定持久化类的属性名,column属性用于指定数据库主键列名。

3)<generator>元素用来指定对象标识符生成器,为持久化类的实例生成唯一的主键值。

3、生成器的类型有:

1)Increment:用于为longshort或者int类型生成唯一标识符。只有在没有其他进程往同一张表中插入数据时才能使用。(这是由hibernate自动增长,所以数据库不能设置主键自动增长)。

2)Hilo:使用一个高/低位算法高效的生产longshort或者int类型。

3)Uuid.hex:用一个128-bitUUID算法生成字符串类型的标识符,UUID被编码为一个3216进制数字的字符串。

4)Identity:对于内部支持标识字段的数据库(DB2,MySQL,SybaseMS SQL),才可以使用identity关键字生成。返回的标识符是longshort,或者int类型。(由数据库来自动增长);

5)Sequence:对于内部支持序列的数据库(DB2,Oracle,PostgreSQLInterbaseSAP DB,McKoi)才可以使用sequence风格的关键字生成。返回标识符是longshort或者int类型。

6)Native:自动根据底层数据库(方言)的能力选择identity,sequence或者hilo中的一个。如果没有指定方言则选择hilo

7)Assigned:让应用程序在保存之前为对象分配一个标识符。这是<generator>元素没有指定是的默认生成策略。(主键由外部程序员生成,无需hibernate参与)。

8)Select:通过数据库触发器选择一些唯一主键的行并返回主键的值来分配一个主键。

9)Foreign:使用另外一个相关联的对象的标识符。通常和<one-to-one>联合起来使用。

4、<property>子元素用于设定持久化类与字段的映射关系。主要包括nametypecolumnnot-null等属性。

1)Name:持久化对象的属性名;

2)Column:数据库的字段名;

3)Type:通常用来指定hibernate映射数据类型,比如:integerstringcharacterdatetimestampfloatobjectblob等。它是java类属性的数据类型与数据库字段数据类型的桥梁,如果不进行类型设定,hibernate它会使用反射来得到这个名字的属性,以此来猜测正确的hibernate类型。

4)Not-null:属性中不能为空。

5)Length:属性的长度。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读