`
Brera
  • 浏览: 2643 次
  • 性别: 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 的  解决...

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

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

    hibernate方言

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

    Hibernate 多数据库支持解决方案

    - 这种转换可能涉及到数据类型、SQL语法、存储过程、触发器等的差异。在迁移过程中,需要对表结构、索引、视图、存储过程等进行相应的调整,确保它们在新数据库中能正常工作。 7. **对UTF-8数据库的特殊处理** - ...

    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...

    java框架之hibernate

    - 通过执行数据库触发器选择唯一主键的行并返回主键值。 8. **SeqHiLo**: - 类似于`hiLo`策略,但使用数据库序列(sequence)作为高位值来源。 9. **Sequence**: - 使用序列生成标识符。 - 适用于DB2、...

    hibernate教程

    - 数据库schema层次验证:通过数据库触发器等方式实现。 - Hibernate基于事件的验证:利用Hibernate提供的事件监听机制。 - 程序级验证:在业务逻辑中手动进行验证。 #### 七、Hibernate与Lucene集成 为了提高...

    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)接口进行通信...

    Hibernate 高级配置

    - **触发器与Session缓存不一致**:在数据库中定义的触发器可能会在Hibernate不知情的情况下修改数据,导致Session缓存中的数据与数据库中的实际数据不同步。为避免这种问题,开发者需要谨慎设计触发器逻辑,并可能...

    工程: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...

    hibernate性能优化方案

    3. **ID生成机制的选择**:不同数据库提供的ID生成策略各异,例如序列、触发器、GUID等,选择适合当前数据库的最佳策略。 4. **适当冗余数据**:虽然过度追求数据库第三范式可能导致大量连接查询,适当的冗余可以...

    SpringMVC4+Spring4+Hibernate5+MySQL5

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

Global site tag (gtag.js) - Google Analytics