首页 > 其他分享 >Spring4+Hibernate4事务小记

Spring4+Hibernate4事务小记

时间:2023-03-28 15:05:28浏览次数:35  
标签:Hibernate4 事务 Hibernate Spring 接口 使用 如果 Spring4 小记


学习Spring+Hibernate,非常强大的框架,为了追新,就直接从最高版本开始学习了,这要冒很大的风险,因为网上可查到的资料大多是针对旧版本的,比如Spring3,Hibernate3。

根据我的测试,记录如下:

1.Spring4事务必须针对接口,否则报错。(之前可以不针对接口?)如果没有事务,则bean普通类也可以注入。

2.事务可以放在接口上,也可以放在实现上。

3.注意应用程序空间必须统一,否则事务失败。

4.Bean最好都交给Spring来管理,如果不是,则如果出现事务控制,可能因不同的应用空间而造成事务失败。

5.事务连接可以使用DataSourceTransactionManager,使用HibernateTransactionManager也可以。


<!-- 
    <bean id="transactionManager"   
            class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource" />  
    </bean>  
     -->

    <bean id="transactionManager"   
            class="org.springframework.orm.hibernate4.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory" />  
    </bean>



 6.如果使用了JdbcTemplate和Hibernate,则应使用HibernateTransactionManager,如果使用DataSourceTransactionManager,则会提示没有活动Session错误。

(这个可能是我配置的有问题?)

7.如果使用事务,则调用时一定要使用接口,否则就会报告错误。

BillOperbaseBill=(BillOper)ctx.getBean("saleBill");

BillOper为第一没接口。

8.如果在程序中像这样使用:

sessionFactory.getCurrentSession().save(T);

如果不开启事务,则会报告

No Session found for current thread

错误。

9.Spring4+Hibernate4中不再支持HibernaterTemplate,只能使用原生的session接口来操作。

10.如果报告错误:hibernate:Cannot use identity column key generation with <union-subclass> mapping for



使用hibernate union-subclass 元素进行继承映射时会抛出此异常:Cannot use identity column key generation with <union-subclass> mapping for.............

原因是使用unnion-subclass 元素时 父类的标识属性生成器不能使用“indentity(native)”  可以选择"hilo”,"increment”等。

11.如果使用Spring+Hibernate,有时Hibernate的配置文件错误不容易发现(至少我没有找到好办法),可以直接使用Hibernate来调试。

12.有时在测试框架(junit)中无法显示Spring配置文件错误,可以在单独的程序单元中进行测试。



13.在需要用异常来控制事务的地方,不要捕获这个异常,或者再次抛出一个异常!

标签:Hibernate4,事务,Hibernate,Spring,接口,使用,如果,Spring4,小记
From: https://blog.51cto.com/u_2650279/6154901

相关文章

  • Spring4 MVC Hibernate4集成
    一、   本文所用环境Spring4.0.3.RELEASEHibernate4.3.5.FinalMysql二、   工程目录 三、   Maven添加依赖用Maven创建项目,pom.xml如下:ViewCode四、  ......
  • python基础:split、join、replace、remove、del、pop、index小记python 字符串的split(
    这里总结了平时写脚本时经常用到的一些基础方法,做个记录1、split()函数可以基于分隔符将字符串分割成由若干子串组成的列表str.split(str="",num=string.count(str))str......
  • 【开发小记】vuex存储用户信息
    今天开发的过程中,遵循前人的经验对用户信息进行了存储。实现这个功能之后,我突然想到vuex本质是什么呢?它为什么要存在,以及它和浏览器的缓存的区别又是什么呢?(第三小节会给出......
  • 利用tensorflow实现简单的卷积神经网络——迁移学习小记(二)
    一、什么是神经网络(CNN)  卷积神经网络(ConvolutionalNeuralNetwork,简称CNN),是一种前馈神经网络,人工神经元可以影响周围单元,可以进行大型图像处理。卷积神经网络包括卷积......
  • 2023/3/23小记
    距离省选还有8天因为睡了太久所以摆烂,整理了一下自己的blog。以后打算好好写一写了awa。中午打arc被光老师抓了。下午打算水点题,听说有体育课。 做题记录......
  • 小记:踩搭到海光服务器的坑
    日前,采购了一台海光服务器然后怎么安装anolis8.4的及centos8.4之前的各种操作系统都会失败,要么是安装操作系统直接黑屏,要么是安装操作系统完成后直接黑屏。。。找厂家,技......
  • Hibernate4性能之批量处理的三种方式
    [url]http://zhou137520.iteye.com/blog/1611621[/url]假如有如下程序,需要向数据库里面加如100000条数据Sessionsession=sessionFactory.openSe......
  • 3.19 小记
    有一个问题是我最近做题效率超级超级差。先写一写以前做过的题吧。CF923EPerpetualSubtraction懒得打公式捏。收录到各种多项式和生成函数科技题里面了P4005小Y......
  • 前端性能优化小记
    背景功能测试后的首页响应较慢,大概要3-6s的样子,于是需要优化。目标首次加载3S渲染完毕二次加载1s渲染完毕当前情况(PC)谷歌渲染如下 分析(PC)请求数太多,共33......
  • exCRT小记
    众所周知CRT只能处理模数两两互质的情况,因为它要算逆元。那么如果模数两两不互质,有没有办法呢?答案是有的。我们先来考虑两个同余方程,设为\(x\equivb_1\pmod{a_1},x\e......