hibernate映射类型

来源:互联网 发布:电脑温度软件2017 编辑:程序博客网 时间:2024/04/28 00:09
普通属性的映射<property name="" type="" column="" length=""not-null="">

主键映射<idname="" ...>, <generaterclass="">, 代理主键
    identity:使用数据库的自动增长,在保存时会忽略手工指定的主键值而由数据库生成,要求此属性要是数字类型
     assigned:手工指定,比如指定UUID 
     uuid:由Hibernate生成UUID并指定为主键值,要求此属性要是String型 
     hilo:高低位算法生成主键,需要用到一个额外的表,所有的数据库都可以使用这种类型,如:
     <generatorclass="hilo">
              <paramname="table">hi_value</param>
              <paramname="column">next_value</param>
              <paramname="max_lo">100</param>
     </generator>
      native:根据底层数据库的能力选择identity、sequence(oracle) 或者 hilo 中的一个
     
组成关系映射 <component...>
    配置文件中:
    <componentname="address">
<propertyname="province"></property>
<propertyname="street"></property>
     </component>
    javabean中:
private Integer id;
private String username;
private Address address; 

集合映射
Set, List, Map, 数组, Bag(无序,可以重复)
它们均需要创建第二张表,所以在配置中必须要写外键,另外由于list和数组需要索引,它们需要配置一个索引,生成表后此索引则成了主键,而map则需要key,也需配置一个map-key属性,具体如下:
<set name="addressSet" table="user_addressSet"order-by="address DESC">
<key column="userId" />
<element column="address"type="string"></element>
</set>

<!-- addressList属性,List集合-->
<list name="addressList"table="user_addressList">
<keycolumn="userId"></key>
<list-indexcolumn="idx"></list-index>
<element column="address"type="string"></element>
</list>

<!-- addressMap属性,Map集合-->
<map name="addressMap"table="user_addressMap">
<keycolumn="userId"></key>
<map-key column="key_"type="string"></map-key>
<element column="address"type="string"></element>
</map>

<!-- addressArray属性,数组类型-->
<array name="addressArray"table="user_addressArray">
<key column="userId" />
<list-indexcolumn="idx"></list-index>
<element column="address"type="string"></element>
</array>

<!-- addressBag属性,Bag类型(Hibernate中的类型)-->
<bag name="addressBag"table="user_addressBag">
<keycolumn="userId"></key>
<element column="address"type="string"></element>
</bag>
配置解释:如Set集合映射 table:集合表的名称 
          <key>中的column:集合外键
          <element>:集合元素列的信息
           sort属性:如果指定为natural,就会像TreeSet那样进行排序。
           order-by属性:指定查询集合元素用的SQL中的order by部分,这里写的是SQL语句。
0 0
原创粉丝点击