`
Brera
  • 浏览: 2516 次
  • 性别: Icon_minigender_1
  • 来自: 火星
社区版块
存档分类
最新评论

hibernate触发器

 
阅读更多

在插入时运行的触发器

		<property name="created" insert="false" update="false"
			column="CREATED" type="timestamp" />

 

		User user = new User();
		session.save(user);
		session.flush();
		session.refresh(user);
		System.out.println(user.getCreated());

 refresh():利用数据库中的当前值,刷新处于持久化状态的内存实例

<property name="created"
type="timestamp"
column="CREATED"
generated="insert"
insert="false"
update="false"/>

 

@Temporal(TemporalType.TIMESTAMP)
@org.hibernate.annotations.Generated(
org.hibernate.annotations.GenerationTime.INSERT
)
@Column(name = "CREATED", insertable = false, updatable = false)
private Date created;
 
<version name="version"
column="OBJ_VERSION"
generated="always"/>
...
<timestamp name="lastModified"
column="LAST_MODIFIED"
generated="always"/>
...
<property name="lastModified"
type="timestamp"
column="LAST_MODIFIED"
generated="always"
insert="false"
update="false"/>
 
@Version
@org.hibernate.annotations.Generated(
org.hibernate.annotations.GenerationTime.ALWAYS
)
@Column(name = "OBJ_VERSION")
private int version;
@Version
@org.hibernate.annotations.Generated(
org.hibernate.annotations.GenerationTime.ALWAYS
)
@Column(name = "LAST_MODIFIED")
private Date lastModified;
@Temporal(TemporalType.TIMESTAMP)
@org.hibernate.annotations.Generated(
org.hibernate.annotations.GenerationTime.ALWAYS
)
@Column(name = "LAST_MODIFIED", insertable = false, updatable = false)
private Date lastModified;

  强制hibernate利用SQL SELECT来获取当前数据库的快照

<class name="Item"
table="ITEM"
select-before-update="true">
...
</class>
 
@Entity
@org.hibernate.annotations.Entity(selectBeforeUpdate = true)
public class Item { ... }
 

 

 

 

 

 

 

分享到:
评论

相关推荐

    Hibernate与数据库的触发器协同工作

    Hibernate 与数据库中的触发器协同工作时, 会造成两类问题  1、触发器使 Session 的缓存中的持久化对象与数据库中对应的数据不一致:触发器运行在数据库中, 它执行的操作对 Session 是透明的 Session 的  解决...

    Hibernate 高级配置

    1. Hibernate与触发器协同工作 1)、触发器使session的缓存中的数据与数据库中的数据不一致 2)、session的update()方法盲目的激发触发器 2. Hibernate中的createQuery方法 1)、uniqueResult()方法,返回一个单个...

    使用java代码自动生成触发器

    此外,为了提高代码的可维护性和可读性,可以考虑使用ORM(对象关系映射)框架,如Hibernate或MyBatis。这些框架提供了更高级别的抽象,可以简化数据库操作,包括创建和管理触发器。 在"触发器自动生成代码.txt...

    hibernate方言

    2. 特殊功能:某些数据库支持的特殊功能可能需要在方言中特别处理,例如存储过程、触发器等。 3. 性能优化:通过调整方言,可以针对特定数据库进行SQL优化,提高查询性能。 4. 兼容性测试:在更换数据库或更新数据库...

    springmvc+hibernate+oracle基础框架

    Oracle提供了丰富的SQL扩展,以及PL/SQL编程语言,可以进行存储过程、触发器等高级数据库操作。 **整合SpringMVC、Hibernate和Oracle** 整合这三个组件,首先需要在项目中引入相应的库依赖,如SpringMVC和Hibernate...

    spring+hibernate 角色权限系统

    开发者可以定义作业和触发器,灵活设置执行时间,实现自动化的工作流。 4. **角色权限管理**: 在这个系统中,角色和权限的管理是核心部分。通常,一个用户可以被分配一个或多个角色,每个角色拥有不同的权限集。...

    hibernate xml

    此外,它还可以定义主键生成策略、索引、触发器等。 3. **关联映射**:在Hibernate XML中,关联映射是非常重要的一部分。这里提到的`cascade`和`inverse`属性是两个关键的概念。 - **cascade**:级联操作是指当对...

    用java编写的简易的网吧计费系统主要是体现线程和触发器的使用

    用java编写一个简易的网吧计费系统,用hibernate框架,sql2008数据库或者是2005数据库,用户sa密码123456,在数据库中用到触发器,在程序中使用线程来计算钱 实现的主要功能是练习线程、hashmap、hibernate、全局...

    订单项目(struts2.0+hibernate)

    订单项目是IT行业中常见的开发任务,本项目特别提到了使用`Struts2.0`和`Hibernate3.x`这两个框架的整合。这是一个基于Java的Web应用程序开发实例,它利用了MVC(Model-View-Controller)设计模式来构建前端与后端的...

    sql2000与sql2005的hibernate-configuration

    SQL Server 2000是微软发布的一款早期的关系型数据库管理系统,而SQL Server 2005则是其后续版本,带来了许多改进,包括增强的性能、安全性、支持XML、存储过程、触发器等新特性,以及更友好的管理工具如SQL Server...

    hibernate中文文档

    5. 触发器和事件监听器:在特定操作前后执行自定义逻辑。 6. 批量操作:优化大批量数据的处理,如Session.saveOrUpdateAll()。 六、最佳实践 1. 使用注解:尽量避免XML映射文件,使用注解进行ORM配置。 2. 事务管理...

    springMVC +mssql+Hibernate 非注解练手

    MSSQL支持SQL标准,包括T-SQL(Transact-SQL)扩展,用于执行数据库操作、创建存储过程和触发器。在与SpringMVC或Hibernate集成时,MSSQL通常作为后端数据存储,通过JDBC(Java Database Connectivity)接口进行通信...

    工程:MyEclipse配置Hibernate

    本篇文章将详细介绍如何在MyEclipse中配置Hibernate,以及相关的数据库操作如SQL语句的编写,包括表的创建、约束、触发器和序列。 1. **MyEclipse配置Hibernate** 配置Hibernate在MyEclipse中通常包括以下步骤: ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     9.1 与触发器协同工作  9.2 利用拦截器(Interceptor)生成审计日志  9.3 Hibernate的事件处理机制  9.4 批量处理数据  9.4.1 通过Session来进行批量操作  9.4.2 通过StatelessSession来进行批量操作  9.4.3...

    SpringMVC4+Spring4+Hibernate5+MySQL5

    MySQL5引入了许多新特性,如存储过程、触发器、分区表、外键约束等,增强了其功能性和稳定性。在SpringMVC和Spring应用中,通常使用JDBC或者ORM框架(如Hibernate)来与MySQL进行数据交互。 综合以上,这个项目利用...

    Hibernate实战(第2版 中文高清版)

     8.1.4 使用触发器   8.2 定制SQL   8.2.1 编写定制CRUD语句   8.2.2 整合存储过程和函数   8.3 改进Schema DDL   8.3.1 定制SQL名称和数据类型   8.3.2 确保数据一致性   8.3.3 添加领域约束和列...

    struts2+spring+hibernate+oracle 需要用到的基本jar包

    - 它支持SQL标准,提供了丰富的数据类型、触发器、存储过程等功能。 - Oracle支持分布式数据库、高可用性和灾难恢复解决方案,如RAC(Real Application Clusters)和Data Guard。 5. **SSH整合**: - 整合这三个...

    Spring+Status+hibernate最新版本

    开发者需要熟悉PL/SQL语言,并且要掌握如何优化Oracle数据库的性能,如索引、存储过程和触发器的使用。 5. **增删改查(CRUD)**:CRUD代表创建(Create)、读取(Read)、更新(Update)和删除(Delete),是所有...

    hibernate3+quartz1

    在IT行业中,Hibernate3和Quartz1是两个非常重要的开源框架,它们分别在持久层和任务调度领域有着广泛的应用。让我们深入探讨一下这两个框架以及如何将它们结合使用以实现特定的功能。 Hibernate3是一个对象关系...

    hibernate连接DB2驱动包

    同时,DB2提供了丰富的SQL扩展和特性,如存储过程、触发器和用户自定义函数,可以与Hibernate的HQL(Hibernate Query Language)或 Criteria API 结合使用,进一步提升应用的功能和性能。 总之,Hibernate连接DB2...

Global site tag (gtag.js) - Google Analytics