`
jetway
  • 浏览: 483689 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

hiberante注解

 
阅读更多

注解 @DynamicInsert 和 @DynamicUpdate

如果是在配置文件的话那就是dynamic -insert 和 dynamic-update

这两个注解在一定程度上可以增加与数据库操作相关的速度,可以节省SQL语句的执行时间,提高程序的运行效率。

使用这两个注解只需要在实体类上加入即可,或者在*.hbm.xml配置。这两个注解是boolean值,true或者false。

 

1.首先使用false来看一下执行的结果,我们就拿更新来举例:

  a.数据库的数据是这样的:

  

  b、实体类的代码

  

    C、测试类代码:

      

      执行测试方法后大家可以看到:

     

    我只更新了Description这个属性,但是却把整个对象的属性都更新了,这在一定程度是影响了效率。而且可能并不是我们希望的结果,我们希望的结果是我更改了哪些
   字段就只要更新我修改的字段就可以了,接下来我们把@DynamicUpdate(false)改为@DynamicUpdate(true) 测试一下 ,结果如下

   

   神奇了,这就是见证奇迹的时刻,达到了我们的目的,只更新我们修改过的字段。@DynamicInsert我就不举例了。

   测试之后可以知道:

   在Hibernate中可以利用@DynamicInsert和@DynamicUpdate生成动态SQL语句,即在插入和修改数据的时候,语句中只包括要插入或者修改的字段。

   当然还有其他的方式达到这种效果,比如使用session为我们提供的merge方法,也是可以的。

 

CacheConcurrencyStrategy有五种缓存方式:

 

   CacheConcurrencyStrategy.NONE,不适用,默认

   CacheConcurrencyStrategy.READ_ONLY ,只读模式,在此模式下,如果对数据进行更新操作,会有异常;

   CacheConcurrencyStrategy.READ_WRITE ,读写模式在更新缓存的时候会把缓存里面的数据换成一个锁,其它事务如果去取相应的缓存数据,发现被锁了,直接就去数据库查询;

   CacheConcurrencyStrategy.NONSTRICT_READ_WRITE ,不严格的读写模式则不会的缓存数据加锁;

   CacheConcurrencyStrategy.TRANSACTIONAL ,事务模式指缓存支持事务,当事务回滚时,缓存也能回滚,只支持 JTA 环境。

 

缓存的注释写法如下,加在 Entity 的 java 类上:

   @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)

分享到:
评论

相关推荐

    hiberante3 注解帮助文档

    hiberante3 注解帮助文档hiberante3 注解帮助文档hiberante3 注解帮助文档hiberante3 注解帮助文档hiberante3 注解帮助文档

    hiberante注解和日志的jar包

    标题中的“hibernate注解”指的是Hibernate框架中使用的元数据注解,它允许开发者在Java类和属性上直接添加注解,以定义对象-关系映射(ORM)信息,替代传统的XML配置文件。这些注解包括@Entity、@Table、@Column等...

    hiberante 源码 配置资料

    2. 对象持久化:Hibernate的核心在于对象的持久化,这主要由Entity类、Hibernate注解以及Hibernate的元数据处理实现。源码中的`org.hibernate.mapping`包下包含了许多关于对象持久化的类和接口。 3. 数据库交互:...

    spring+mvc+hiberante

    Controller 类通过 @RequestMapping 注解定义处理特定 URL 的方法,这些方法可以调用业务层的服务。业务层服务通常由 Spring 管理的 beans 提供,这些 beans 可以利用 Spring 的 DI 特性获取所需的依赖。 然后,...

    hiberante5.0.7安装jar包

    通过注解@Entity声明实体类,@Table指定对应的数据库表,@Id标注主键字段,@Column描述其他字段。例如: ```java @Entity @Table(name = "users") public class User { @Id @GeneratedValue(strategy = ...

    springmvc hiberante

    6. 映射和实体类:为数据库表创建对应的Java实体类,使用注解(@Entity、@Table等)进行ORM映射。同时,需要配置Hibernate的实体扫描路径,以便SessionFactory能找到这些类。 7. Hibernate配置:在hibernate.cfg....

    hiberante annotations reference.pdf

    根据提供的文件信息,“hiberante annotations reference.pdf”主要介绍了Hibernate框架中的注解使用方法与参考。下面将基于标题、描述及部分文档内容进行详细的解析。 ### Hibernate注解概述 Hibernate是一个开源...

    Struts2 Spring2.5 Hiberante3.3.2 +ExtJS(Struts2-json)做的CRUD

    在这个DEMO中,Spring2.5.6采用了Annotation注解的方式,使得代码更加简洁,无需XML配置文件,只需在类或方法上添加注解,就可以声明bean和其依赖。Spring还提供了事务管理、AOP(面向切面编程)等功能,增强了应用...

    hiberante4.2.3-part01

    通过使用`@Entity`注解,我们可以将一个Java类声明为实体,并使用`@Table`注解指定对应的数据库表名。此外,`@Id`注解用于标记主键字段,`@GeneratedValue`用于指定主键生成策略。 2. **持久化API**:Hibernate提供...

    hiberante annotations reference_cn

    《Hibernate Annotations参考中文版》是Java开发者非常重要的参考资料,它详细介绍了如何在Java应用程序中使用Hibernate ORM框架进行对象关系映射(ORM)并通过注解方式进行数据持久化。Hibernate ORM是Java领域广泛...

    hiberante5基础讲义

    我们使用注解(@Entity、@Table等)来标记实体类,并通过属性注解(@Id、@GeneratedValue等)定义主键。同时,通过@ManyToOne、@OneToMany等关系注解来处理对象间的关联。映射文件(.hbm.xml)是另一种映射方式,...

    Hiberante lib

    接着,定义实体类并创建对应的Hibernate映射文件(XML或注解方式),配置Hibernate的SessionFactory,最后编写代码来实例化Session,进行数据的增删改查。通过实践,可以深入理解Hibernate如何将Java对象与数据库...

    hiberante有关配置说明

    可以通过XML文件(`.hbm.xml`)或Java注解进行配置。例如,使用XML配置一个User实体: ```xml ``` 或者使用注解方式: ```java @Entity @Table(name = "users") public class User { @Id @...

    Hiberante读取BLOB数据类型.

    在Hibernate的映射文件(.hbm.xml)或使用注解的方式,我们需要为BLOB类型的属性设置相应的映射。例如,如果有一个`Document`实体类,其中包含一个名为`content`的BLOB字段,映射可能如下: ```xml <!-- .hbm....

    hiberante中文帮助文档

    `@Entity`注解标识一个Java类为实体类,`@Table`定义实体对应的表名,`@Column`映射字段等。 4. **Session和Transaction**:`SessionFactory`用于创建`Session`对象,`Session`是操作数据库的主要接口,负责保存、...

    权限管理 struts2 hiberante3.5 spring3.0 annotation

    这篇详细说明将深入探讨这三个框架如何协同工作,以及如何利用注解(Annotation)来简化配置。 Struts2是一个强大的MVC(Model-View-Controller)框架,用于构建可维护性和扩展性良好的Web应用程序。它提供了丰富的...

    hiberante - one to many - update

    对于"one"端,我们将使用`@OneToMany`注解,并指定`mappedBy`属性,这表明另一个实体("many"端)负责维护它们之间的关系。"many"端则使用`@ManyToOne`注解来引用"one"端的实体。 在更新操作时,需要注意以下几点:...

    疯狂Ajax讲义+Spring+hiberante

    1. **实体和映射**:定义Java类作为数据库中的表,使用注解或XML配置文件描述对象与表之间的映射关系。 2. **Session接口**:是Hibernate的主要工作接口,用于执行查询、保存、更新和删除对象。 3. **HQL和SQL**:...

    hiberante4、jdk6帮助文档chm

    在“hibernate-release-4.1.8.Final_api.chm”文档中,你可以找到关于Hibernate 4.1.8版本的各种类、接口、方法和注解的详细说明。这个文档将涵盖持久化模型的配置、实体管理、查询语言(HQL)和Criteria API等内容...

Global site tag (gtag.js) - Google Analytics