Spring配置事务为一个Service方法一次事务
现在jdbc操作和Hibernate查询操作在同一个Service方法中,先jdbc插入数据,随后Hibernate读取jdbc插入的数据。
数据库里面已经有了jdbc插入数据,但是Hibernate查询不出来
jdbc操作开始事务并提交注:没有开启二级缓存,查询缓存。隔离级别试过,查询方法加上事务也试过,都查询不到数据,语句没有问题,如果用Hibernate插入就能查询到。
现在jdbc操作和Hibernate查询操作在同一个Service方法中,先jdbc插入数据,随后Hibernate读取jdbc插入的数据。
数据库里面已经有了jdbc插入数据,但是Hibernate查询不出来
jdbc操作开始事务并提交注:没有开启二级缓存,查询缓存。隔离级别试过,查询方法加上事务也试过,都查询不到数据,语句没有问题,如果用Hibernate插入就能查询到。
解决方案 »
- 怎么把j2ee的工程打包成war啊?
- SSH项目中集成CXF报错
- smartupload在struts2的action中有死机问题
- 对Spring的事务管理的疑问
- 正则表达式初级问题
- 给介绍几款电子印章和在线OFFICE编辑插件吧!!如果介绍的产品优秀,追加100分!
- 刚把servlet/jsp学完,准备学struts2,有两本书,大家推荐一下。
- Struts知识点(问题很多,希望能有详细的解答!满分)
- 请问怎么修改config.xml以把ejb的jar文件发布到weblogic上?
- struts2中的extends的问题
- hibernate问题, HibernateUtils下怎么画波浪线的啊
- JavaScript 禁止除Ctrl+V之外的所有快捷键。。。
public void addByBatch(List l ){ getHibernateTemplate().execute(new HibernateCallback() { public Object doInHibernate(Session session)
throws HibernateException, SQLException {
session = getSessionFactory().openSession();
org.hibernate.Transaction tran = session.beginTransaction(); Connection connection = session.connection();
/**
批量处理省略代码。
**/ pstmt.executeBatch();
pstmt.clearBatch();
pstmt.close();
tran.commit();
session.flush();
session.clear();
session.disconnect();
return null;
} });
}
}service 中
大体逻辑是这样public BaseServiceImpl{public void add(){
//先调用jdbc添加
baseDaoImpl.addByBatch(list); /**
上面代码执行完数据库有数据
**///Hibernate查询
List l = baseDaoImpl.get(...);/**
l中没有数据
**/}
}
我的jdbc中事务提交了,所以数据库有数据了。可是Hibernate搜索不到
使用了Spring,但是用jdbc连接时,好像session不会被自动回收,所以调用了disconnect
还有一点,Hibernate使用JDBC可以使用PreparedStatement做批量吗?指点下