【java-如何在m​​ybatis-spring中使用@Transactional批注?】教程文章相关的互联网学习教程文章

java – 没有@Transactional的Hibernate sessionFactory.getCurrentSession()【代码】

在Hibernate4中,Spring4我想使用不带@Transactional注释的sessionFactory.getCurrentSession().有什么办法吗?解决方法:简单的答案是:是的,当然你可以像SessionFactory.getCurrentSession()只是一个接口的方法,所以你可以编写自己的实现类,为你提供你喜欢的任何Session. 但是,这可能不是您正在寻找的答案. 我们一直在问自己一个类似的问题:为什么在使用Hibernate和Spring的事务管理时,我们必须将@Transactional添加到我们所有的方...

java – 当事务只读取数据时,我应该避免使用注释@Transactional吗?【代码】

我已经从使用TransactionProxyFactoryBean的旧式事务管理迁移到Spring推荐的Declarative事务管理,以避免出现不时出现的事务的异常. 对于事务保存更新删除我添加了注释: @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class) 它对我有用. 问题是:Should I avoid using the annotation @Transactional when the transaction only reads data?例:public TradeData getTrade(long tradeId) throws Ex...

java – 对注释类型Transactional未定义属性readOnly【代码】

当我将这段代码放在服务方法上时,我收到此错误@Transactional(readOnly =true)我正在编写此代码以使事务只读.你能告诉我在这种情况下我做错了什么解决方法:确保从org.springframework.transaction.annotation.Transactional导入@Transactional而不是从javax.transaction.Transactional导入,因为readOnly属性特定于Spring事务.

java – 为hibernate和@Transactional配置spring数据源【代码】

此时我正在使用带有@Transactional注释的DriverManagerDataSource来管理事务.但是所有事务都非常慢,可能是因为数据源每次都打开和关闭与db的连接. 我应该使用什么数据源来加速交易?解决方法:DriverManagerDataSource实际上不是连接池,只应用于测试.您应该尝试从Apache Commons DBCP开始的BasicDataSource.类似于:<bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource"><property name=...

java – 使用synchronized关键字的Spring @Transactional不起作用【代码】

假设我有一个类似这样的方法的java类(只是一个例子)@Transactional public synchronized void onRequest(Request request) {if (request.shouldAddBook()) {if (database.getByName(request.getBook().getName()) == null) {database.add(request.getBook());} else {throw new Exception("Cannot add book - book already exist");}} else if (request.shouldRemoveBook()) {if (database.getByName(request.getBook().getName())...

java – 为什么使用@Transactional方法的类不能自动装配?【代码】

我正在使用带有WAFFLE过滤器的Spring Security,该过滤器针对ActiveDirectory服务器对用户进行身份验证.我创建了一个额外的过滤器,用于根据我的数据库对用户进行身份验证(它只是检查是否以前经过身份验证的用户在数据库中).这是使用UserDetailsS??ervice的实现完成的. 这个组合一直有效,直到我向服务添加了@Transactional注释方法.现在的服务无法自动连接到过滤器. 这是服务类:@Service public class UserService implements UserD...

java – Springs @Transactional仅适用于代理【代码】

我有一个使用Springs @Transactional进行数据库回滚的方法.当我像这样定义事务管理器时它工作正常:<tx:annotation-driven transaction-manager="txManager" mode="proxy" />但当我更改为mode =“aspectj”时,它不会在方法抛出异常时回滚. 这两种模式应该如何使用?解决方法:只有在启用了加载时编织或编译时编织时,“aspectj”模式才有效.如果不是,那么@Transactional注释将不会应用于带注释的方法. 默认代理模式不能用于注释私有方...

java – Spring中的@Transactional注释【代码】

我编写了下面的代码来使用@transactional注释来实现spring的事务管理.我仍然觉得需要做一些改变在我的DAO层.我可以知道需要做哪些更改.提前致谢@Controllerpublic class RestController {@AutowiredDataServices dataServices;@RequestMapping(value = "/v1/dist_list/{emailId}/members", method = RequestMethod.GET)public @ResponseBody String getDistributionListMember(@PathVariable String emailId) throws Exception, Sp...

java – Spring @Transactional只读模式回滚行为

我有一些@Transactional服务层方法(readOnly = true),这个方法经常导致一些RuntimeException(假设它是一些NotFoundException异常). 我也在使用ORM Hibernate进行数据库交互过程. 这样做是否合法? 在这种情况下,“回滚”行为意味着什么是默认行为?它能否以某种方式严重影响连接的状态或导致任何问题? 这不是“为什么不亲自尝试?”.我怀疑这可能会导致事务回滚,因为在一些异常之后,它在同一方法中被标记为仅回滚错误.这可能是非常...

java – 对CXF使用的类中的公共方法的@Transactional问题【代码】

我正在混合spring-data和CXF来创建一个创建neo4j节点的RESTful端点.我的结构是一个定义面向公众的方法的集合接口,我的公共方法调用我的实现,其中有几个私有方法. 当我创建一个公共方法时,我遇到代理转换问题.Caused by: java.lang.IllegalArgumentException: Can not set javax.ws.rs.core.HttpHeaders field com.neuralsandbox.service.PublicCallsPublic.httpHeaders to $Proxy37 at sun.reflect.UnsafeFieldAccessorImpl.throwS...

java – 如何配置要使用的事务管理器而不必覆盖所有@Transactional方法【代码】

长时间听众第一次来电. 我们有一个包含公共事务逻辑的AbstractService.java类.并非此类中的所有方法都是事务性的.曾经的那些是用spring的@Transactional注释注释的. 现在,AbstractService的每个实现都可能具有不同的事务管理器.这可以通过覆盖抽象类中的方法在具体类中配置,并提供不同的tx管理器:@Transactional(value=TRANSACTION_MANAGER)由于“注释属性Transactional.value的值必须是常量表达式”,因此无法将事务管理器名称传递...

java – Spring @Transactional Annotation类或方法

试图收集和理解@Transactional注释的要点并克服了一点.因此,使用Transactional注释时我们需要记住的主要事项是: >交易注释只能应用于公共方法[根据Does Spring @Transactional attribute work on a private method?>事务性注释应该应用于具体类而不是接口[根据Where should I put @Transactional annotation: at an interface definition or at an implementing class?>交易注释应该应用于服务级别[根据Spring @Transactional Ann...

java – Spring @Transactional没有回滚【代码】

我正在使用Spring的NamedParameterJdbcTemplate,我正在尝试使用@Transactional来确保两个插入既可以持久保存到数据库,也可以回滚,以防另一个插入失败. 该代码旨在与MySql一起运行,并在内存中使用H2进行测试. 它没有用……第二次插入失败但第一次没有回滚. 以下是相关课程: MySpringConfig.javapackage com.MyPackage.spring@Configuration @ComponentScan({ "com.MyPackage" }) public class MySpringConfig {@Bean public NamedP...

java – 使用@Transactional的类层次结构问题【代码】

项目设置:Spring 3.0.5 / JPA 2 / Hibernate / @Transactional 我们使用几个不同的数据源(因此使用不同的事务管理器),但具有公共服务基类,因为许多功能被重用. 所以我们认为我们可以通过使用Custom Annotations来解决这个问题.我们在抽象基类中定义所有方法,并为每个事务管理器创建一个空实现类. 现在的问题是: 在AbstractFallbackTransactionAttributeSource,这是正在进行的查找:TransactionAttribute txAtt = findTransaction...

java – 在独立应用程序中使用@Transactional【代码】

我正在开发一个暴露REST API的独立应用程序. 我用我能找到的最标准的库来制作它.基本上,我使用JPA2,Hibernate(和Guice进行依赖注入).这是我的主要依赖项:<dependency><groupId>com.google.inject</groupId><artifactId>guice</artifactId><version>3.0</version> </dependency><dependency><groupId>javax.persistence</groupId><artifactId>persistence-api</artifactId><version>1.0.2</version> </dependency><dependency><gro...