Hibernate_映射文件详解

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>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值