如果保存数据模块只用到了同一个session,完了直接返回,那么只要开启了事务便不会出现(循环插入数据只插入一条的问题)的问题,
而当代码是同一个session执行了一个查询操作,然后继续执行保存操作,如下:
@Override
public List<Loan> fetchRaisingLoan(String loanId) {
String hql = "from Loan loan where loan.status = '" + "raising' ";
if(!loanId.equals("all")){
hql = hql.concat(" and loan.id = '" + loanId + "'");
}
Session session = ht.getSessionFactory().getCurrentSession();
Transaction tx = session.beginTransaction();
List<Loan> list = session.createQuery(hql).list();
tx.commit();
return list;
}
//在controller层执行完以上查询后循环执行以下插入操作
public void saveP2pToTable(CsaiP2pDataPojo csaiP2pDataPojo) {
Session session = ht.getSessionFactory().getCurrentSession();
Transaction tx = null;
try {
tx = session.beginTransaction();
session.saveOrUpdate(csaiP2pDataPojo);
} catch (Exception e) {
e.printStackTrace();
tx.rollback();
}finally{
tx.commit();
session.close();
}
//session.setFlushMode(FlushMode.AUTO);
}
//之后会出现只插入一条数据的问题
//解决办法:将保存方法中的获取session的方法改为“openSession”即可
//原因:因为二级缓存中保存了第一次的pojo导致,当opensession时重新打开一个session,
//这样,hibernate会认为这缓存中的pojo和新插入的不是同一个,
分享到:
相关推荐
hibernate入门数据简单插入
最近自学java中的框架-struts写了一些小例子,这都是很经典的程序,如果大家瞧得起要下载去看看,顺便给俺找找不足的地方。我的qq 821865130 email qingtian_hechen@163.com 希望大家能多多给我帮助...在此谢谢各位!!
很多人都对Java在批量数据的处理方面是否是其合适的场所持有怀疑的念头,由此延伸,那么就会认为ORM可能也不是特别适合数据的批量处理。 其实,我想如果我们应用得当的话,完全可以消除... 向数据库插入100 000条数据
上传的资料都是非常经典的,这也是我学习过程中的心得,希望大家能给我指点,也希望大家多上传资料共同学习。千万不要传空文件夹。。。
使用Hibernate将大量记录插入到数据库
解决hibernate监听器死循环问题
Hibernate 简单入门讲解一(简单的数据插入讲解).swf
spring+hibernate解决多数据源问题3.pdf
struts2+Hibernater+spring整合之插入数据
解决Hibernate对于Date类型的数据返回结果中时分秒不对的问题
适合初学者使用。使用Hibernate做查询数据库,代码为eclipse项目,直接导入即可使用,只供参考。
Hibernate配置各种数据源 <hibernate-configuration> <!– 各属性的配置–> <!—为true表示将Hibernate发送给数据库的sql显示出来 –> ”show_sql”>true <!– SQL方言,这边设定的是MySQL –> ”dialect”>...
Hibernate 使用缓存时,数据同步问题
HIBERNATE FOR NETBEANS 数据操作方法 还有的是,这是对HIBERNATE 的简单使用的介绍..
spring boot 2多数据源,里面有hibernate和mybatis的多数据源代码。代码拿过去即可集成使用。
Hibernate中数据类型,涵盖了所有数据库的字段类型与Java基本类型间的映射关系
这是Hibernate 的一个小的例子 数据持久化得初步。
关于Hibernate的基本数据类型与Java中基本数据类型的映射关系
Spring+Hibernate多数据源的整合实现demo