【java – 如何以编程方式创建事务代理?】教程文章相关的互联网学习教程文章

java – JPA和MySQL事务隔离级别【代码】

我有一个本地查询,可以批量插入MySQL数据库:String sql = "insert into t1 (a, b) select x, y from t2 where x = 'foo'";EntityTransaction tx = entityManager.getTransaction();try {tx.begin();int rowCount = entityManager.createNativeQuery(sql).executeUpdate();tx.commit();return rowCount;}catch(Exception ex) {tx.rollback();log.error(...);}此查询导致死锁:当它使用insert .. select从t2读取时,另一个进程尝试在...

Java数据库事务四大特性以及隔离级别【图】

四大特性ACID 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚。失败回滚的操作事务,将不能对数据库有任何影响 一致性(Consistency) 一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。例如转账操作:A账户转入B账户1000元,A账户少了1000,B账户多了1000;事务结束后总金额保持不变。 隔离性 (Is...

java – 处理跨数据库服务器的事务【代码】

我有一个场景,工作单位定义为:Update table T1 in database server S1 Update table T2 in database server S2我希望上述工作单元完全发生或根本不发生(如同任何数据库事务一样).我怎样才能做到这一点?我进行了广泛的搜索,发现这个post接近我的预期,但这似乎对Hibernate非常具体. 我使用Spring,iBatis和Tomcat(6.x)作为容器.解决方法:这实际上取决于您需要的解决方案的稳健性.这种事情的最低可靠性是XA事务.要使用它,您需要一个支...

java – mysql视图在事务内部没有刷新(Hibernate / Spring)

我使用Spring for DI和Hibernate在mySQL数据库上进行数据访问.我在一个事务中有代码,该事务在表中插入记录,然后执行查询该表并执行一些聚合计算的视图.我看到的问题是我刚刚在同一个事务中插入的记录未包含在视图的计算值中.我在mySQL工作台中运行相同的视图,插入的值包含在视图中.有谁知道是什么原因造成的?解决方法:最终,我不得不调用entityManager.refresh(Object entity)来刷新我想要更新的视图记录的实体.我认为问题在于Hibe...

java – 想要使用hibernate查询中的事务从表中的文件夹和数据库值中删除现有文档【代码】

我有一个文件上传的应用程序.上传文件后,新创建文档路径,文档保存在文件路径中.同时文档路径和相关值保存在数据库表中.在我的应用程序中上传后,有一个删除不需要的文件的按钮.有时文件删除操作不正常工作.因此会出现内存浪费.我想通过使用交易声明来避免这种情况.我不知道如何将hibernate事务用于我的工作.这可能吗?请帮我成功完成工作(我使用spring与hibernate集成和postgresql) 谢谢 在控制器中int supDocId=1102; String docPa...

java – 如何以干净的方式在Spring Data Redis中实现事务?【代码】

我正在关注RetwisJ教程here.在此我不认为Redis交易已实施.例如,在以下函数中,如果中间发生某些异常,则数据将保持不一致状态.我想知道如何在Spring Data Redis中将以下函数实现为单个事务:public String addUser(String name, String password) {String uid = String.valueOf(userIdCounter.incrementAndGet());// save user as hash// uid -> userBoundHashOperations<String, String, String> userOps = template.boundHashOps(K...

java – 为什么只在提交期间在Hibernate中使用事务时检查HSQLDB中的数据库约束?【代码】

我在HSQL中发现了一个奇怪的行为,似乎在使用数据库事务时,在SQL插入期间没有检查数据库约束,但在SQL提交期间以及当事务被回滚时,它们根本不会被检查. 我有一个Spring集成测试:@RunWith(SpringJUnit4ClassRunner.class) @TransactionConfiguration(defaultRollback=true, transactionManager="transactionManager") @Transactional public class IntegrationTest {使用测试创建一个新的实体实例并调用Hibernate的持久性. 它运行正常...

java – Ibatis startBatch()仅适用于SqlMapClient自己的启动和提交事务,而不适用于Spring管理的事务【代码】

我发现即使我有Spring事务包装的代码,并且它在我期望的时候提交/回滚,为了在使用Ibatis和Spring时使用JDBC批处理,我需要使用显式的SqlMapClient事务方法. 即这按照我的预期进行批处理:dao.getSqlMapClient().startTransaction(); dao.getSqlMapClient().startBatch();int i = 0; for (MyObject obj : allObjects) {dao.storeChange(obj);i++;if (i % DB_BATCH_SIZE == 0){dao.getSqlMapClient().executeBatch();dao.getSqlMapClie...

java – 应用程序是否可以更改WebSphere和DB2组合上每个单独事务的隔离级别

我使用DB2数据库(9.5)在WebSphere应用程序服务器(7.0.0.19)上运行了一个应用程序.我的印象是应用程序服务器或数据库忽略了在应用程序中设置的隔离级别(在Java代码中).应用程序使用从应用程序服务器获取连接,它使用应用程序服务器中的事务管理器. 我没有找到明确的答案(或确认),不是在手册中,而是在网络上.我找到了一些迹象,建议,暗示,但没有明确的答案.对数据库接缝进行一些监控以证明这一点. 有人可以承认这种行为吗?可以使用配置...

java – 服务方法的事务管理器,它对来自多个模式的表执行数据库操作

>该应用程序是在Spring休眠.>它有一个进程,在这个进程下,来自3个模式的mysql表得到更新.>我有不同的dataSources,sessionFactories和每个架构的transactionManagers.>我有3个DAO类在各自执行数据库操作架构表.>因为所有数据库操作都应该在一个单独的操作之下事务,我从一个服务方法调用那些dao方法. 但问题是我不知道如何注释这个服务方法@Transactional. Transactional annotation只接受一个事务管理器,但我有3个.我的方法有误吗?我...

java – 使用多个连接的单个事务. (MYSQL / JDBC)【代码】

我正在处理的应用程序是一个基于Java的ETL过程,它将数据加载到多个表中. DBMS是Infobright(基于MYSQL的DBMS,适用于数据仓库). 数据加载应以原子方式完成;但是,出于性能原因,我想同时将数据加载到多个表中(使用LOAD DATA INFILE命令).这意味着我需要打开多个连接. 有没有任何解决方案允许我原子地并行地进行负载?(我猜测答案可能取决于我加载的表格的引擎;大多数是Brighthouse,它允许事务,但没有XA和没有保存点). 为了进一步澄清,我...

java – MySQL群集中的XA事务支持?

MySQL Cluster是否支持XA事务?我正在使用NDBCLUSTER引擎.我有一个应用程序需要为事务更新多个dbs.解决方法:引用MySQL manual:XA transaction support is limited to the InnoDB storage engine.所以答案是否定的,NDBCLUSTER引擎不支持XA事务.

java – 如何在发生异常后使用PostgreSQL在Spring Boot中继续事务?【代码】

我创建了一个创建用户帐户的服务方法.如果由于给定的电子邮件地址已经在我们的数据库中而导致创建失败,我想向用户发送一封电子邮件,说明他们已经注册:@Transactional(noRollbackFor=DuplicateEmailException.class) void registerUser(User user) {try {userRepository.create(user);catch(DuplicateEmailException e) {User registeredUser = userRepository.findByEmail(user.getEmail());mailService.sendAlreadyRegisteredEma...

java – 如何在Oracle下处理大型事务?

我们的应用程序基于Hibernate 3.5,Spring 3.1和Oracle下我继续运行Max Cursors Exceeded问题,主要是在处理大型事务时(涉及的实体数量大,执行的查询数量).在H2,MS SQL Server或MySQL上运行应用程序时不会出现此类问题. 如果我正确理解了我的调查结果,Oracle会为事务中构建的每个ResultSet创建一个游标,并且只有在Connection上调用close(即Hibernate Session)时才会释放这些游标. 我的问题(目前): >有没有办法让Oracle在清理游标时清...

Java知识点梳理:MySQL支持的事务隔离级别

提到事务,提到事务,你肯定会想到 ACID(Atomicity、Consistency、Isolation、Durability,即原子性、一致性、隔离性、持久性),今天来讲一讲I,隔离性。 本文参照:极客时间-《java核心技术36讲》-第36讲 极客时间-《MySQL实战45讲》-03 隔离性与隔离级别 悲观锁与乐观锁 mybatis mybatis架构自下而上分为基础支撑层、数据处理层、API接口层这三层。 基础支撑层,主要是用来做连接管理、事务管理、配置加载、缓存管理等最基础组件...