Hibernate_映射文件详解

来源:互联网 发布:大数据导论 pdf 编辑:程序博客网 时间:2024/05/17 02:38

1.根节点hibernate-mapping节点属性

使用package属性,可以定义该文件包名,默认下方class节点的对象都在该包中

<hibernate-mapping package="com.atguigu.hibernate.entities">

2.class节点中的动态更新节点属性

在对象某字段更新后,提交update语句会只修改被更改过的字段,如果属性为false会update所有字段

<class name="News" table="NEWS" dynamic-update="true" >

3.id节点,生成主键的方式。

<id name="id" type="java.lang.Integer">            <column name="ID" />            <generator class="native" />        </id>

generator生成属性:

1increment :会去查询表主键最大值再加 1来生成主键,会产生并发问题。一般不会使用

2identity:由数据库底层负责生成标识符,它要求数据库把主键定义为自动增长字段 ,Oracle不支持自增。

3.sequence:由底层数据库的序列作为主键。Oracle DB2支持。

<id name="pono" type="java.lang.Long">   <column name="pono"/><generator class="sequence"/><param name="sequence">news_seq</param>  </id>
4hilo:由Hibernate按照一种高低算法生成标识符。不依赖底层数据库。

5native:会根据底层数据库对自动生成id的支持能力,自动选择identity,sequence,hilo

6assigned:手动分配主键。

4.property节点相关属性

unique设定唯一约束(会自动修改表),update设定是否字段可以修改,index设定表约束,length设定字段长度

<property name="title" type="string" column="TITLE" unique="true" update="false" index="news_index" length="20">        </property>

派生属性formula,在bean中增加desc字段(数据库中没有),desc作为显示,需要运用统计函数时,可以配置在property中。

formula必须加括号,使用的列是数据表中的列,不是持久化类的属性。

<!-- 映射派生属性 -->        <property name="desc" formula="(SELECT concat(author, ': ', title) FROM NEWS n WHERE n.id = id)"></property>


0 0
原创粉丝点击