草庐IT

事务处

全部标签

java - session 事务消费者或生产者中的消息代理异常处理

我想使用SAGA我的SpringBoot微服务中的模式。例如,在客户订单中,当订单创建时,会产生一个类似OrderCreatedEvent的事件,然后在客户微服务中OrderCreatedEvent上的监听器更新客户信用并产生CreditUpdateEvent和...。我使用session事务处理JmsTemplate来生成事件。在JmsTemplate的javadoc中表示JMS事务在主事务之后提交:ThishastheeffectofalocalJMStransactionbeingmanagedalongsidethemaintransaction(whichmightbeana

java - 在 Spring/Hibernate 环境中手动管理数据库事务

我们有一个基于Spring的Web应用程序,它利用Hibernate将其实体加载/存储到底层数据库。由于它是一个后端应用程序,我们不仅希望我们的UI还允许第三方工具手动启动数据库事务。这就是为什么调用者需要调用StartTransaction方法,然后获取他们可以引用的ID参照该ID进行所有DB相关调用(如创建、修改、删除),明确哪些操作属于启动的事务调用CommitTransaction方法向我们的后端发出信号,表明现在可以提交事务(或者在否定情况下将调用RollbackTransaction)因此请记住,所有数据库处理都将由Java持久性注释在内部完成,我们如何向我们的UI开放事务

java - JPA事务回滚重试和恢复: merging entity with auto-incremented @Version

我想在交易失败后恢复。现在,当然,在任何回滚之后,所有实体都会分离并且实体管理器会关闭。但是,UI仍然保留分离的实体。显然我们不能就这样丢弃用户的更改,所以我们想让他们重试(修复突出显示的验证错误,然后再次单击按钮)。在JavaPersistenceWikiBook之后,OnemethodoferrorhandlingistocallmergeforeachmanagedobjectafterthecommitfailsintoanewEntityManager,thentrytocommitthenewEntityManager.Oneissuemaybethatanyidsthat

java - get 在没有 Activity 事务的情况下无效 - hibernate 5

即使我已手动启动交易,我仍不断收到此错误。Sessionsession=HibernateUtil.getSessionFactory().getCurrentSession();transaction=session.getTransaction();if(!transaction.isActive()){transaction=session.beginTransaction();}accessToken=session.get(OAuthAccessToken.class,token);hibernate.cfg.xmltrue520300503000org.hibernate.

java - Spring 事务注解

我正试图更好地处理Spring的@Transactional属性的使用。我知道它基本上将标记为@Transactional的方法的内容包装在事务中。将服务/业务层方法标记为事务性方法是否合适,而不是像我在此处所做的那样将实际的DAO方法标记为事务性方法?服务实现publicclassUserServiceImplimplementsUserServiceInt{@AutowiredprivateUserServiceDAOserviceDAO;@OverridepublicUsergetUser(intid){returnserviceDAO.getUser(id);}@Overrid

java - Spring JPA/Hibernate 事务强制插入而不是更新

已编辑。虽然扩展基础存储库类并添加插入方法会起作用,但更优雅的解决方案似乎是在实体中实现Persistable。查看可能的解决方案2我正在使用springframework.data.jpa创建一个服务,使用JpaTransactionManager将Hibernate作为ORM。遵循此处教程的基础。http://www.petrikainulainen.net/spring-data-jpa-tutorial/我的实体存储库扩展org.springframework.data.repository.CrudRepository我正在使用一个遗留数据库,它使用有意义的主键而不是自动生成

java - 如果不回滚 Hibernate 中的事务会发生什么?

我读到的关于Hibernate的所有内容都指出,当发生错误时,您必须回滚事务并关闭session,并且以下代码(取自Hibernate的文档)通常有一些变体作为示例:Sessionsess=factory.openSession();Transactiontx=null;try{tx=sess.beginTransaction();//dosomework...tx.commit();}catch(RuntimeExceptione){if(tx!=null)tx.rollback();throwe;//ordisplayerrormessage}finally{sess.close(

java - Apache 事务 :write file transactionally - how to use resourceId

如果有人实现了事务写入文件,请帮助我。相关主题已在较早的线程(transactionalwrite)中讨论过。用例如下:如果写入日志文件失败,应回滚相应的数据库事务。因此写入文件应该以事务方式执行。我选择了ApacheCommonsTransaction库。有问题,这不会让我更进一步,因为没有找到合适的文档或示例。我已经创建了FileResourceManager实例:FileResourceManagerfrm=newFileResourceManager("c:\cur","c:\cur",true,logger);据我了解ApacheCommonsTransactiontutor

java - 连接到 JDBC 事务的开始

我有一个连接到Postgres9.6数据库的SpringBootwebapp。我使用Spring的JdbcTemplate来执行SQL语句。我数据库中的每个表都有用于INSERT、CREATE和DELETE语句的触发器。这些触发器将受影响的行复制到历史表中。我希望触发器还保存进行更改的用户的应用程序用户ID。根据https://stackoverflow.com/a/13172964/2591231我可以通过让应用程序在每个事务开始时将当前用户ID插入临时表并从临时表中读取触发器来实现我的目标。在其他几个地方提到的类似方法正在执行:SETLOCALapplication_name="m

java - Spring JMS 监听器中的事务管理

我有一个正在监听队列的springJMS监听器。消息到达输入队列后,会对消息进行一定的处理,并将消息放入多个其他队列中进行进一步处理(我们可以将这些其他队列称为输出队列)。当它发布到其他输出队列时,如果将消息发布到输出队列之一可能由于任何原因而失败,我想确保在失败之前完成的输出队列的其他发布被回滚。基本上我想确保它是原子操作。监听器/容器上是否有任何注释/配置可用于在单个事务中实现此目的?这是我正在使用的配置看起来JMS模板和监听器容器都引用同一个连接工厂bean(jmsConnectionFactory) 最佳答案 在监听器容器上