`

hibernate 配置文件的一些参数理解

阅读更多

 

 

   很多Hibernate映射元素定义了可选的length、precision 或者 scale属性。你可以通过这个属性设置字段的长度、精度、小数点位数。

 

   Oracle使用标准、可变长度的内部格式来存储数字。这个内部格式精度可以高达38位。 

 

    NUMBER数据类型可以有两个限定符,如: 

 

    column NUMBER ( precision, scale) 

 

    precision表示数字中的有效位。如果没有指定precision的话,Oracle将使用38作为精度。 

 

    scale表示数字小数点右边的位数,scale默认设置为0.  如果把scale设成负数,Oracle将把该数字取舍到小数点左边的指定位数

 

5) Set集合石无序、不能有重复元素的,Hibernate提供了一个Bag集合,用来处理重复元素的情况。值得注意的是,Bag并不是Java API,而是Hibernate提供的。Bag集合映射和List不同,List的集合元素是有序的,需要有一个集合序号 

    来标识集合元素的位置,List元素可以重复;而Bag集合元素不需要元素序号标识,元素也是可以重复的。

 

 

在hibernate中 cascade="all"和cascade="all-delete-orphan"

 

all的意思是save-update   +   delete   

all-delete-orphan   的意思是当对象图中产生孤儿节点时,在数据库中删除该节点   

all比较好理解,举个例子说一下all-delete-orphan:   

Category与Item是一对多的关系,也就是说Category类中有个Set类型的变量items.   

举个例子,现items中存两个Item,   item1,item2,如果定义关系为all-delete-orphan   

当items中删除掉一个item(比如用remove()方法删除item1),那么被删除的Item类实例   

将变成孤儿节点,当执行category.update(),或session.flush()时   

hibernate同步缓存和数据库,会把数据库中item1对应的记录删掉

 

 

 

Hibernate fetch 总结

 

fetch 和 lazy 主要是用来级联查询的,   而 cascade 和 inverse 主要是用来级联插入和修改的              fetch参数指定了关联对象抓取的方式是select查询还是join查询,select方式时先查询返回要查询的主体对象(列表),再根据关联外       键 id,每一个对象发一个select查询,获取关联的对象,形成n+1次查 询; 而join方式,主体对象和关联对象用一句外键关联的sql同时查询出来,不会形成多次查询。 

如果你的关联对象是延迟加载的,它当然不会去查询关联对象。 另外,在hql查询中配置文件中设置的join方式是不起作用的(而在所有其他查询方式如get、criteria或再关联获取等等都是有效的),会使用 select方式,除非你在hql中指

定join     fetch某个关联对象。fetch策略用于定义 get/load一个对象时,如何获取非lazy的对象/集合。 这些参数在Query中无效。

 

hibernate操作数据库 插入修改数据库默认值 dynamic-insert dynamic-update

 

Hibernate允许我们在映射文件里控制insert和update语句的内容.比如在映射文件中<property 元素中的update属性设置成为false,那么这个字段,将不被包括在基本的update语句中,修改的时候,将不包括这个字段了.insert同理.dynamic动态SQL语句的配置也是很常用的.下面介绍配置SQL语句的具体属性:

      1)<property>元素 insert属性:设置为false,在insert语句中不包含这个字段,表示永远不会被插入,默认true

      2)<property>元素 update属性:设置为false,在update语句中不包含这个字段,表示永远不会被修改,默认true

      3)<class>元素 mutable属性:设置为false就是把所有的<property>元素的update属性设置为了false,说明这个对象不会被更新,默认true

      4)<property>元素 dynamic-insert属性:设置为true,表示insert对象的时候,生成动态的insert语句,如果这个字段的值是null就不会加入到insert语句当中.默认false

      5)<property>元素 dynamic-update属性,设置为true,表示update对象的时候,生成动态的update语句,如果这个字段的值是null就不会被加入到update语句中,默认false

      6)<class>元素 dynamic-insert属性:设置为true,表示把所有的<property>元素的dynamic-insert属性设置为true,默认false

      7)<class>元素 dynamic-update属性:设置为true,表示把所有的<property>元素的dynamic-update属性设置为true,默认false

 

      Hibernate生成动态SQL语句的消耗的系统资源(比如CPU,内存等)是很小的,所以不会影响到系统的性能,如果表中包含N多字段,建议把dynamic-update属性和insert属性设置为true,这样在插入和修改数据的时候,语句中只包括要插入或者修改的字段.可以节省SQL语句的执行时间,提高程序的运行效率.

 

http://doc.javanb.com/hibernate-reference-3-2-0-zh/ch20.html   对hibernate 实体xml文件中各种配置参数的介绍

 

分享到:
评论

相关推荐

    hibernate配置文件

    然而,我们可以根据标题“hibernate配置文件”及描述“不会的可以看看,什么乱七八槽的东西.20字,没有问题”来推断出,这部分内容可能是为了帮助初学者理解Hibernate配置文件的相关概念。接下来,我们将详细介绍...

    hibernate--5.Hibernate配置文件详解-2

    标题"hibernate--5.Hibernate配置文件详解-2"暗示我们将继续上一节的内容,进一步深入理解Hibernate配置文件的各个方面。通常,Hibernate的配置文件以`hibernate.cfg.xml`的形式存在,它是项目初始化和连接数据库的...

    oracle的hibernate配置文件

    `hibernate1.cfg.xml`是Hibernate配置的核心文件,它定义了数据源、连接池、持久化类、缓存策略等关键信息。以下将逐个解析这些重要部分。 1. 数据源配置: 在`hibernate1.cfg.xml`中,首先需要配置数据源。对于...

    hibernate_3配置文件参数汇总

    本篇文章将汇总Hibernate 3配置文件中的关键参数,帮助开发者更好地理解和配置Hibernate。 1. **SQL方言(Dialect)**:`hibernate.dialect` 是一个必不可少的配置项,它定义了Hibernate针对特定关系数据库使用的SQL...

    Hibernate配置文件

    **Hibernate配置文件详解** Hibernate,一个强大的Java持久化框架,为开发者提供了对象关系映射(ORM)服务,简化了数据库操作。在Hibernate中,`hibernate.cfg.xml`是核心配置文件,它定义了数据库连接、实体管理...

    Hibernate核心配置文件对照表

    `hibernate.properties`是Hibernate的核心配置文件,用于设定与数据库连接、缓存策略、事务管理等相关的重要参数。下面我们将详细探讨这个配置文件中的关键知识点。 1. **数据库连接配置** - `hibernate....

    hibernate配置文件hibernate.cfg.xml的详细解释

    ### Hibernate配置文件hibernate.cfg.xml的详细解释 #### 一、引言 在Java持久化框架Hibernate中,`hibernate.cfg.xml`是核心配置文件之一,它用于配置Hibernate的运行环境,包括数据库连接信息、性能参数以及其他...

    hibernate 配置文件JAR包

    下面我们将深入探讨Hibernate配置文件JAR包中的关键知识点。 1. **hibernate.cfg.xml**:这是Hibernate的核心配置文件,包含了数据库连接参数、事务管理、缓存配置等信息。例如,`driver_class`指定数据库驱动,`...

    根据hibernate配置文件生成数据库.zip

    本压缩包“根据hibernate配置文件生成数据库.zip”包含了一些关键资源,帮助开发者理解如何使用Hibernate工具hbm2ddl自动生成数据库结构。以下是对这些资源的详细解释: 1. **使用Hibernate的工具hbm2ddl根据你的...

    Hibernate配置文件在单元测试中的应用

    本篇文章将详细探讨Hibernate配置文件在单元测试中的应用。 首先,我们需要理解什么是单元测试。单元测试是针对程序模块的最小可测试单元进行验证,例如一个方法或一个类。它的目的是确保代码的每个部分都能按照...

    hibernate完整配置文件

    Hibernate是Java领域中一款广泛应用的关系对象映射框架,它允许开发者用面向对象...这个“hibernate完整配置文件”压缩包应该包含了所有必要的配置和示例,是初学者和有经验的开发者深入理解Hibernate配置的宝贵资源。

    根据数据库表生成实体、hibernate配置文件和实体映射文件

    本教程将深入讲解如何根据数据库表自动生成实体类、Hibernate配置文件以及实体映射文件。 首先,我们需要了解Hibernate的基本概念。Hibernate提供了一个在Java应用中使用的持久化模型,它允许开发者用面向对象的...

    hibernate利用配置文件反向生成数据库所有配置文件及方法

    1. **Hibernate配置文件**(hibernate.cfg.xml):这个文件包含了连接数据库所需的基本信息,如数据库URL、用户名、密码等。 2. **实体关系数据库映射文件**(.hbm.xml):这些文件定义了Java类与数据库表之间的映射...

    Hibernate4 jar包及配置文件

    在这个压缩包中,我们通常会找到一系列的Hibernate核心库和其他依赖库的jar文件,以及必要的配置文件,这些都对理解并有效使用Hibernate4至关重要。 首先,我们要了解Hibernate的核心概念。Hibernate是一个开源的...

    Hibernate调用配置文件中的sql语句

    1. **配置文件设置**:在Hibernate的主配置文件(通常是hibernate.cfg.xml)中,我们需要开启对SQL查询的支持。添加以下配置: ```xml &lt;property name="hibernate.hbm2ddl.auto"&gt;update &lt;property name="...

    hibernate和struts2所需的配置文件

    总的来说,理解并正确配置Hibernate和Struts2的配置文件对于开发Java Web应用至关重要。这不仅可以帮助我们更好地管理数据库交互,还能使我们的应用结构清晰,易于维护。同时,熟悉这些配置文件的结构和内容也有助于...

    hibernate配置文件以及类映射文件常用写法1

    《Hibernate配置文件与类映射详解》 Hibernate作为一款强大的对象关系映射(ORM)框架,简化了Java应用与数据库之间的交互。本文将深入探讨Hibernate的配置文件和类映射文件的常用写法,帮助开发者更好地理解和应用...

Global site tag (gtag.js) - Google Analytics