Hibernate映射文件之映射普通属性

普通属性指的是基本数据类型及其包装类型、java.lang.String、java.util.Date。

Hibernate使用<property/>元素映射普通属性。

<property name="" type="" column="" length="" not-null="true" unique="false"
        access="" lazy="false" insert="true" update="true"
        formula="" generated="never" 
        optimistic-lock="true" 
        precision="" scale="" 
        unique-key="" index=""
        node=""/>

 

name:属性名

 

type:属性的类型

 

column:属性映射的字段的字段名

 

length:属性映射的字段的长度

 

not-null:是否允许为空(true或false)

 

unique:是否为该属性映射的字段添加唯一性约束

------------------------------------------------------------

access:属性访问策略(property或field)

 

lazy:是否启用延迟加载(true或false)

 

insert:Hibernate生成的insert语句中是否需要包含该字段,

            如果该字段的值无需有Hibernate生成(由触发器或其他程序生成),则可将该值设为false

 

updateHibernate生成的update语句中是否需要包含该字段,

              如果该字段的值无需有Hibernate生成(由触发器或其他程序生成),则可将该值设为false

------------------------------------------------------------------------------------------------------------

formula:指定一个sql表达式,表明该属性的值将根据表达式来计算,

               如果为formula指定sql表达式,生成的数据表中将没有和该属性对应的字段

 

generated:该属性映射的字段的值是否由数据库生成,

                       可选值有never(不有数据库生成)、

                       insert(对应字段的值在insert时生成,但不会在update时重新生成)、

                       always(对应字段的值在insert和update时都会重新生成)

----------------------------------------------------------------------------------------------

optimistic-lock:该熟悉在进行更新时是否需要使用乐观锁定

----------------------------------------------------------------------------------------------

precision:对数值类型的字段有效,指定有效数字的位数

 

scale:对float、double、decimal等类型的字段有效,指定字段的小数位数

----------------------------------------------------------------------------------------------

unique-key:指定一个唯一键的名称,

                     当系统需要Hibernate自动建表时,用于为对应的字段创建唯一索引,

                     只有当对应字段具有唯一性约束时才有效

 

index:指定一个字符串的索引名称,

            当系统需要Hibernate自动建表时,用于为对应的字段创建索引,从而加速基于该字段的查询

-----------------------------------------------------------------------------------------------------------

node:暂时还不清楚

 

1、映射基本数据类型及其包装类型

 

<property name="byteNum" type="java.lang.Byte" column="byte_num"/>
<property name="shortNum" type="java.lang.Short" column="short_num"/>
<property name="intNum" type="java.lang.Integer" column="int_num"/>
<property name="longNum" type="java.lang.Long" column="long_num"/>
<property name="floatNum" type="java.lang.Float" column="float_num"/>
<property name="doubleNum" type="java.lang.Double" column="double_num"/>
 
<!--除了指定了length属性,与上面的代码没有区别-->       
<property name="byteNum1" type="java.lang.Byte" column="byte_num_1" length="2"/>
<property name="shortNum1" type="java.lang.Short" column="short_num_1" length="3"/>
<property name="intNum1" type="java.lang.Integer" column="int_num_1" length="5"/>
<property name="longNum1" type="java.lang.Long" column="long_num_1" length="10"/>
<property name="floatNum1" type="java.lang.Float" column="float_num_1"/>
<property name="doubleNum1" type="java.lang.Double" column="double_num_1"/>


 

2、映射java.lang.String

 

<!--type属性使用java数据类型指定-->
<property name="firstName" type="java.lang.String" column="first_name"/>

<!--type属性使用Hibernate内置数据类型指定,同时指定length属性-->
<property name="lastName" type="string" column="last_name" length="100"/>


 

3、映射java.util.Date

java.util.Date可以被映射成SQL的date类型、time类型、datetime类型。

 

<!-- type属性为date,将被映射成SQL的date类型 -->
<property name="date" type="date" column="DATE"/>
        
<!-- type属性为time,将被映射成SQL的time类型 -->
<property name="time" type="time" column="TIME"/>
        
<!-- type属性为timestamp,将被映射成SQL类型 -->
<property name="timestamp" type="timestamp" column="TIMESTAMP"/>



 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值