Hibernate提供三种方式将POJO变成PO类:

    1. 使用持久化注解(以JPA标准注解为主,如果有一些特殊要求,则依然需要使用Hibernate本身提供的注解)。

    2. 使用JPA2 提供的XML配置描述文件(XML deployment descriptor),这种方式可以让Hibernate的PO类与JPA实体类兼容。

    3. 使用Hibernate传统的XML映射文件(*.hbm.xml文件的形式)。

  对于Hibernate PO类而言,通常可以采用如下两个注解来修饰它:

    1. @Entity : 被该注解修饰的POJO就是一个实体。使用该注解时可指定一个name属性,name属性指定该实体类的名称。默认以该类的类名作为实体类的名称。

    2. @Table : 该注解指定持久化类锁映射的表。

      @Table 注解可指定的属性:

        1. catalog:(非必须)用于设置将持久化类所映射的表放入制定的catalog中。如果没有指定该属性,数据表将放入默认的catalog中。

        2. indexs:(非必须)为持久化类所映射的表设置索引。该属性值时一个@Index注解数组。

        3. name:(非必须)设置持久化类所映射的表的表名。如果没有制定该属性,那么该表的表名将与持久化类的类名相同。

        4. schema : (非必须)设置将持久化类所映射的表放入指定的schema中。如果没有指定该属性,数据表将放入默认的schema中。

        5. uniqueConstraints:(非必须)为持久化类所映射的表设置唯一约束。该属性的值是一个@UniqueConstraint注解数组。

          @UniqueConstraint用于数据表定义唯一约束。使用该注解可以指定唯一的属性:columnNames。columnNames的值是一个字符串数组,每个字符串元素代表一个数据列。

          @Index用于数据表定义索引。使用该注解可以指定columnList、name、unique等属性。

            1.columnList

            2. name

            3. unique

    3. @Access

      AccessType.PROPERTY

      AccessType.FIELD

    4. @Proxy

    5. @DynamicInsert : 指定用于出入记录的insert语句是否在运行时动态生成,并只插入那些非空字段。该属性的值默认时false。开启该属性将导致Hibernate需要更多时间来生存SQL语句。

    6. @DynamicUpdate : 指定用于更新记录的update语句是否在运行时动态生成,并只更新那些改变过的字段。该属性的值默认时false。开启该属性将导致Hibernate需要更多的时间来生成SQL语句。

啦啦啦

5 -- Hibernate的基本用法 --6 深入Hibernate映射的更多相关文章

  1. 5 -- Hibernate的基本用法 --4 2 hibernate.properties文件与hibernate.cfg.xml文件

    hibernate.properties : project\etc\hibernate.properties hibernate.cfg.xml : project\etc\hibernate.cf ...

  2. 5 -- Hibernate的基本用法 --2 2 Hibernate的数据库操作

    在所有的ORM框架中有一个非常重要的媒介 : PO(持久化对象:Persistent Object).持久化对象的作用是完成持久化操作,简单地说,通过该对象可对数据执行增.删.改的操作 ------ ...

  3. 5 -- Hibernate的基本用法 --4 6 Hibernate事务属性

    事务也是Hibernate持久层访问的重要方面,Hibernate不仅提供了局部事务支持,也允许使用容器管理的全局事务. Hibernate关于事务管理的属性: ⊙ hibernate.transac ...

  4. 5 -- Hibernate的基本用法 --4 深入Hibernate配置文件

    Hibernate的持久化操作离不开SessionFactory对象,这个对象是整个数据库映射关系经过编译后的内存镜像,该对象的openSession()方法可打开Session对象.该对象通常由Co ...

  5. 5 -- Hibernate的基本用法 --2 1 Hibernate 下载和安装

    1. 下载Hibernate压缩包 2. 解压:文件结构 ⊙ documentation : 该路径下存放了Hibernate的相关文档,包括Hibernate的参考文档和API文档等. ⊙ lib ...

  6. 5 -- Hibernate的基本用法 --1 4 Hibernate概述

    Hibernate 不仅仅管理Java类到数据库的映射(包括Java数据类型到SQL数据类型的映射),还提供数据查询和获取数据的方法,可以大幅度减少开发时人工使用SQL和JDBC处理数据的时间.

  7. 5 -- Hibernate的基本用法 -- 要点

    Hibernate的基本用法 ⊙ ORM的基本知识 ⊙ ORM和Hibernate的关系 ⊙ Hibernate的基本映射思想 ⊙ Hibernate入门知识 ⊙ 使用Eclipse开发Hiberna ...

  8. 轻量级Java_EE企业应用实战-第5章Hibernate的基本用法-001

    1. package org.crazyit.app.domain; import javax.persistence.*; /** * Description: <br/> * ��վ: ...

  9. 5 -- Hibernate的基本用法 --4 4 数据库方言

    Hibernate底层依然使用SQL语句来执行数据库操作,虽然所有关系数据库都支持使用标准SQL语句,但所有数据库都对标准SQL进行了一些扩展,所以在语法细节上存在一些差异.因此,Hibernate需 ...

随机推荐

  1. Android Studio 使用过程遇到的坑

    最近在尝试Android Studio打Jar的包,然而事实并不是想象的那么简单,so,写多个坑的解决,以备不时之需. 1.Error:Execution failed for task ':app: ...

  2. C++有关 const & 内敛 & 友元&静态成员那些事

    C++中有关 const & 内敛 & 友元&静态成员 的用法比较杂乱,算是C++中一个麻烦的部分.现速速的对它们做大致的总结,了解它们当中常见的用法和陷阱. const修饰的 ...

  3. C#基于RSA加密算法实现软件注册实战演练

    一.课程介绍 本次分享课程属于<C#高级编程实战技能开发宝典课程系列>中的一部分,阿笨后续会计划将实际项目中的一些比较实用的关于C#高级编程的技巧分享出来给大家进行学习,不断的收集.整理和 ...

  4. python测试开发django-48.xadmin上传图片django-stdimage

    前言 django通过自带的ImageField可以实现图片上传,如果想在列表页面也显示图片缩略图的话,可以用django-stdimage插件来实现 django-stdimage django-s ...

  5. cordova 开发笔记

    1.安装 Node.js Cordova需要Node.js环境,访问https://nodejs.org 下载安装, LTS版本即可,不要最新版. 2.安装 Cordova 执行下述命令把Cordov ...

  6. 如何在windows2008/2012上安装启明星系统。

    启明星系统提供多种安装方式.安装包里自带了setup.exe.每个程序的 install下有在线安装(例如请假应用程序为book,则默认为 http://localhost/book/install ...

  7. iOS:针对固定数据源,更好的封装cell

    一.介绍 在iOS开发中,tableView非常常用,能将其展示出来,它的数据源必不可少.当然数据源有动态下发的,有固定写死的,这里我只探讨固定写死的情况.对于死数据,我们在项目中经常遇到的场景就是我 ...

  8. C# 获取文件名及扩展名【转】

    https://www.cnblogs.com/libushuang/p/5794976.html C# 获取文件名及扩展名 string aFirstName = aFile.Substring(a ...

  9. XMPP使用简介--登录

    在现阶段的通信服务中,各种标准都有,因此会出现无法实现相互连通,而XMPP(Extensible Message and presence Protocol)协议的出现,实现了整个及时通信服务协议的互 ...

  10. javascript验证QQ号、邮箱和手机号码

    //验证QQ号码5-11位 function isQQ(qq) { var filter = /^\s*[.0-9]{5,11}\s*$/; if (!filter.test(qq)) { retur ...