最近项目用spring来管理事物,但是水平经验有限,所以请教一下有经验的人。
spring的事物默认抛出runtimeexception回滚,这样就够了么?程序会不会抛出其他异常从而导致不回滚,这就惨了,我为了保险起见设置了所有异常都回滚,这样会不会造成不必要的麻烦,问一下大家项目中一般都是怎么配的。
还有查询方法要不要加入事物管理器中,我设置为了PROPAGATION_REQUIRED,readOnly这样会不会降低查询的速度啊?
顺便提下,是不是加入事物管理了dao层方法中的数据库连接就不会关闭。因为我开始一个查询blob属性,查询没加入事物时,会报链接关闭的异常,安照网上说法,加入事物就好了。
[b]问题补充:[/b]
数据库连接池当然已经配好了,异常回滚我也知道,我是说你们一般是配的哪些异常回滚?是根据自己的业务还是就是runtimeexception,还是像我这样偷懒什么异常都回滚。
[b]问题补充:[/b]
我就是没发现有什么业务异常啊,就是怕事物中抛出了一些数据库操作错误,而这个异常又不是runtimeexception的子类,所以不回滚,我就弄了所有的exception,其实如果有自己业务的异常我让他继承runtimeexception就行了,自己的好控制,就怕不是自己的。呵呵。
这要看这个系统架构的定位,设计是怎么样的,有些项目就要定义一些业务异常类,
不过只要满足项目需求,怎么样都行
一般都要搞数据库连接池的,数据库连接当然不会直接关闭掉,放回池里嘛
spring的事物默认抛出runtimeexception回滚,但你还可以配置回滚指定的异常类
做项目当然是会定义业务自己的异常类的,封装自己的异常类抛出回滚