博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hibernate 映射配置文件详解(一)
阅读量:7047 次
发布时间:2019-06-28

本文共 1988 字,大约阅读时间需要 6 分钟。

<?xml version="1.0"?>

<!DOCTYPE hibernate-mapping PUBLIC

        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>

    <class name="cn.itcast.f_hbm_component.User" table="user">

       <id name="id">

            <generator class="native"/>

       </id>

       <property name="name"></property>

    </class>

</hibernate-mapping>

 

一、映射主键的配置方法:

 

主要是由generator子元素是指定主键生成策略,详细说明如下:

<id name="id">

    <generator class="native"/>

</id>

<!-- identity,使用数据库的自动增长,在保存时会忽略手工指定的主键值而由数据库生成,要求此属性要是数字类型

      <generator class="identity"/>

-->

<!-- assigned,手工指定,比如指定UUID

      <generator class="assigned"/>

-->

<!-- uuid,由Hibernate生成UUID并指定为主键值,要求此属性要是String型

      <generator class="uuid"/>

-->

<!-- hilo,高低位生成主键,需要用到一个额外的表,所有的数据库都可以使用这种类型

      <generator class="hilo">

      <param name="table">hi_value</param>

      <param name="column">next_value</param>

      <param name="max_lo">100</param>

      </generator>

-->

 <!-- native,根据底层数据库的能力选择 identity、sequence 或者 hilo 中的一个

      <generator class="native"/>

-->

 

二、普通属性的声明方法

 

<property name="name" type="string" column="name" not-null="true" length="35"/>

<property name="name"></property>     

<property name="gender"></property>

<!-- 日期要指定什么类型 -->

<property name="birthday" type="date"></property>

<!-- 大文本类型,最好指定长度 -->

<property name="desc" column="`desc`" type="text" length="5000"></property>

<!-- 二进制类型,最好指定长度 -->

<property name="photo" type="binary" length="512000"></property>

<!--

    ---------------------------说明---------------------------------

    name:对象中的属性名,必须要有

    type:数据的类型,不写时会自动检测

    column:对应的列名,不写时默认为属性的名称

    not-null:true/false,是否有非空约束,默认为false

    length:长度,默认为255

-->

最好都指定类型,类型制定的有两种包括:Hibernate类型制定和Java基本数据类型制定,详细的指定方法如下所示:

 

三、组成关系映射

 

直接新建一张表,表结构如下:

<component name="userAddress"   class="cn.itcast.UserAddress">

    <property name="address"></property>

    <property name="code"></property>

    <property name="phone"></property>

</component>]

 

四、集合关系映射

<set name="addressSet" table="user_addressSet">

    <key column="userId"/> 关联列 == id

    <element column="address" type="string"></element>

</set>

 

转载地址:http://uyzol.baihongyu.com/

你可能感兴趣的文章
红帽收购混合云管理提供商NooBaa,混合云爆发节点临近!
查看>>
保持分布式团队同步
查看>>
QCon上海2015盛大开幕
查看>>
Jakarta EE:云原生Java的新平台
查看>>
2018 Node.js用户调查报告显示社区仍然在快速成长
查看>>
WhiteSource推出免费开源的漏洞检查工具
查看>>
聊天机器人已死,为什么腾讯还要打造自己的智能客服?
查看>>
如何打造一流的查询引擎,构建优秀的数据仓库?
查看>>
想要高效上传下载?试试去中心化的Docker镜像仓库设计
查看>>
Java的序列化特性将要退出历史舞台了
查看>>
Netty 学习和进阶策略
查看>>
Leetcode 16. 3Sum Closest
查看>>
linux及git记录
查看>>
自制jq分页插件
查看>>
详解js变量声明提升
查看>>
【windows】win10正式版分享WiFi热点
查看>>
程序与文档
查看>>
独孤九剑(0x04) - 测试篇
查看>>
JS学习总结
查看>>
一个前端写的php博客系统--支持markdown哦
查看>>