/**
* <p>Title: executeInCyouSession</p>
* <p>Description: 将持久化操作放入事务中</p>
*
* @author youyan
* @param action -- 持久化操作(增删改查)
* @return Object -- 结果数据
* @throws CyouBaseException
*/
public Object executeInCyouSession(CyouCallback action) throws CyouBaseException
{
this.session = persistenManager.getCurrentCyouSession();
Object result = null;
try {
log.info("*****************begin transaction*****************");
session.beginTransaction();
result = action.doInTemplate(session);
session.commitTransaction();
log.info("*****************commit transaction*****************");
} catch (CyouBaseException e) {
session.rollbackTransaction();
log.info("!!!!!!!!!!!!!rollback transaction!!!!!!!!!!!!!");
log.error("error happend when executeInCyouSession(): " + e.getMessage());
throw new CyouBaseException
("error happend when executeInCyouSession(): " + e.getMessage() , e);
}
//由于hibernate是延迟加载机制,故如果在此地方关闭session,会导致延迟加载失败,
//报org.hibernate.SessionException: Session is closed! 异常
//另外可以采用lazy=false的配置策略
//事务提交后会自动关闭session,故注释以下session关闭代码,防止异常出现
/*finally
{
if(session != null && session.isConnected())
session.close();
}*/
return result;
}
- 浏览: 212955 次
文章分类
- 全部博客 (227)
- framework (13)
- opensource (3)
- database (20)
- linux (16)
- javase (19)
- management (1)
- spring (26)
- test (3)
- sqlserver (3)
- EJB (1)
- esb (24)
- others (3)
- eclipse (13)
- algorithm (1)
- server (1)
- hibernate (24)
- maven (18)
- servlet (1)
- activemq (5)
- liferay (2)
- camel (1)
- exception (11)
- tomcat (5)
- cxf (10)
- log (1)
- openJPA (1)
- jpa (1)
- c3p0 (6)
- cas (1)
- osgi (6)
- svn (2)
- awake (0)
- design (7)
- webservice (6)
- JavaEE (6)
- eclipse,web (1)
- web (7)
- blog (1)
- rest (6)
- http (2)
- powerdesigner (1)
- servicemix (5)
- cache (1)
- jquery (2)
- security (1)
- js (3)
- json (2)
- report (2)
- birt (1)
- jsp (1)
- activiti (1)
- mac (1)
- dubbo (3)
- shiro (2)
- mq (1)
- nginx (1)
- springcloud (1)
最新评论
发表评论
-
Hibernate常用配置文件详解
2014-11-25 15:21 648转自:http://blog.csdn.net/csh624 ... -
使用Hibernate SQLQuery执行原生SQL
2014-11-17 19:46 3228Hibernate对原生SQL查询的支持和控制是通过SQLQ ... -
(转)struts2,hibernate4,spring3配置时问题汇总及解决办法
2014-10-21 14:50 7511.java.lang.NoClassDefFoundErr ... -
JDBC和JTA事务区别
2014-10-13 16:33 712转自:http://blog.sina.com.cn/s/b ... -
Hibernate使用c3p0报错:Could not get database metadata,表或视图不存在
2014-10-09 15:27 1353使用hibernate配置c3p0,运行时报如下错误 m ... -
hibernate几个 OneToMany.异常总结
2014-09-30 15:00 567hibernate几个 OneToMany.错误总结http ... -
hibernate c3p0 数据库连接池参数详解
2014-09-22 19:26 1056Hibernate自带的连接池算法相当不成熟。 它只是为了让 ... -
maven项目hibernate4.3.5配置c3p0
2014-09-22 18:35 561hibernate.cfg.xml <?xml ... -
eclipse从数据库逆向生成Hibernate实体类
2014-09-22 16:42 509hibernate tools可以直接 ... -
Hibernate的setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP)
2014-09-19 14:28 1774[html] view plaincopy ... -
hibernate里createSQLQuery的addEntity()和setResultTransformer()方法
2014-09-19 14:18 5261. 使用SQLQuery对原生SQL ... -
Eclipse使用hibernate插件
2014-09-16 15:22 424转自:http://www.cnblogs.com/xia ... -
Hibernate4 buildSessionFactory与 ServiceRegistry
2014-09-16 14:00 907在用Hibernate4时会发现: ... -
hibernate配置C3P0详解
2014-09-03 18:18 786转自:http://blog.csdn.net ... -
基于hibernate实现的分页技术
2014-09-03 17:26 527转自:http://blog.csdn.net/beyond ... -
JPA和Hibernate比较
2014-09-03 16:21 1370转自:http://wenku.baidu. ... -
Comparison of OpenJPA with MySQL server vs Hibernate with MySQL server
2014-09-02 19:46 797From: http://www.jpab.org/Open ... -
Hibernate关联关系配置(一对多、一对一和多对多)
2014-07-25 10:07 1292第一种关联关系:一对多(多对一) "一对多&qu ... -
Hibernate中inverse="true"的理解
2014-07-24 20:29 773转自:http://lijiejava.iteye.com/ ... -
Hibernate延迟加载机制
2014-07-24 20:12 702转自:http://blog.163.com/xi_zh_q ...
相关推荐
Hibernate Session 绑定线程解决方案 在 Java web 开发中, Hibernate 是一个非常流行的 ORM(Object-Relational Mapping)框架,用于将 Java 对象映射到关系数据库中。然而,在使用 Hibernate 进行数据库操作时,...
org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.connections.spi.ConnectionProvider] at org.hibernate.service.internal....
3. org.hibernate.Session Interface:提供了相关的数据库操作,如添、更、删、加、查等基本操作,非线程安全,轻量级,其创建及销毁消耗资源少。每个客户请求对应一个 Session。 4. org.hibernate.Transaction ...
2. org.hibernate.SessionFactory Interface:从该接口中获得 Session 实例,具备多线程安全和重量级特点,一个数据库对应一个 SessionFactory,其创建及销毁消耗资源多。 3. org.hibernate.Session Interface:和...
#hibernate.query.factory_class org.hibernate.hql.internal.classic.ClassicQueryTranslatorFactory ################# ### Platforms ### ################# ## JNDI Datasource #hibernate.connection....
3. **org.hibernate.boot** 包:这部分涉及Hibernate的启动过程和元数据加载,比如`MetadataSources`和`MetadataBuilder`,它们负责从不同来源(如XML配置文件、注解等)收集元数据。 4. **org.hibernate.type** 包...
- `org.hibernate.Session`:这是与数据库交互的主要接口,负责执行CRUD操作和查询。 - `org.hibernate.cfg.Configuration`:用于配置Hibernate,加载并构建SessionFactory。 - `org.hibernate.SessionFactory`:...
1. **配置**:首先,需要在项目中引入Hibernate库,并创建一个配置文件(通常是hibernate.cfg.xml),配置数据库连接信息。 2. **实体定义**:使用注解定义实体类及其属性,指定与数据库表的对应关系。 3. **...
at org.hibernate.cfg.HbmBinder.bindRootPersistentClassCommonValues(HbmBinder.java:251) at org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:236) at org.hibernate.cfg.HbmBinder.bindRoot...
2. **org.hibernate.cfg**: 配置相关的类,如Configuration,用于加载Hibernate配置文件,建立SessionFactory。Environment类中定义了一些常量,比如连接数据库所需的属性。 3. **org.hibernate.cache**: 缓存管理...
query.setHint("org.hibernate.fetchSize", 20); // 设置查询结果集大小 query.setFetchSize(20); List<Game> games = query.list(); tx.commit(); } catch (HibernateException e) { if (tx != null) { tx....
1. `org.hibernate.Session`:类似于JDBC中的Connection,代表一次数据库会话,通过Session我们可以操作持久化对象。 2. `org.hibernate.cfg.Configuration`:配置对象,用于设置Hibernate的属性,如数据库连接信息...
- `hibernate.dialect`:指定对应数据库的方言,如`org.hibernate.dialect.PostgreSQLDialect`,以便Hibernate生成最优的SQL。 - `hibernate.show_sql`:如果设为`true`,Hibernate会在控制台输出所有执行的SQL...
hibernate-commons-annotations-4.0.1.Final.jar
- Session:是Hibernate的主要工作接口,负责与数据库的交互,提供了数据的增删改查操作。 - EntityManager:JPA的一部分,提供了对实体对象的操作,包括管理实体状态、事务处理等。 - Configuration:配置...
5. `org.hibernate.query`:包含HQL(Hibernate Query Language)和JPQL(Java Persistence Query Language)的处理逻辑。 三、核心组件解析 1. SessionFactory:它是所有Session的工厂,负责初始化数据库连接、...
7. **org.hibernate.event**:这个包包含了Hibernate的各种事件监听器,比如SaveOrUpdateEventListener、DeleteEventListener等,它们监听实体的生命周期事件,如保存、更新、删除等,可以自定义扩展行为。...
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">...
导入这些JAR文件后,开发者需要配置Hibernate的主配置文件(通常命名为`hibernate.cfg.xml`),指定数据库连接参数、实体类和映射文件等。接着,可以创建SessionFactory并打开Session,通过Session进行CRUD(创建、...
2.2、打开此文件,将“<property name="hibernate.connection.url">jdbc:sqlite:D:/EGSDatabase.egsdata”一行中的数据库文件("D:/EGSDatabase.egsdata")修改为合适的数据库文件。 注:附件包含了...