我正在使用spring boot和spring-data-jpa开发一个应用程序,其中我有一个方法,它可以做两件事:
下面是你的方法:
@Transactional(rollbackFor=Exception.class)
public synchronized void saveMessageFilters(List<MessageFilter> list) {
logger.debug("Insert or update message filters <{}>", list);
for (MessageFilter filter : list) {
checkIfMessageFilterExists(filter);
MessageFilter messageFilter = messageFilterRepository.save(filter);
logger.info("Message filter <{}> processed",messageFilter);
}
List<MessageFilter> messageFilters = (List<MessageFilter>)messageFilterRepository.findAll();
}
JPA可能会在执行findAll之前刷新挂起的更新操作,这就是它在findAll方法上触发错误的原因。
只需在执行findAll之前手动刷新即可
messageFilterRepository.flush();
List<MessageFilter> messageFilters = (List<MessageFilter>)messageFilterRepository.findAll();
我在运行于Tomcat7的web应用程序中使用Spring3.2和JPA以及Hibernate4。应用程序分为控制器类、服务类和DAO类。服务类在类和方法级别具有带注释的事务配置。DAO是由@PersistenceContext注释注入实体管理器的普通JPA。 我打开了org的调试日志记录。springframework。交易并注意到,“创建新交易”、“打开新EntityManager”、“获取…
我正在使用DAO进行事务管理。场景是创建包含quote_line和客户列表的新报价。如果客户不存在,它将把它插入表客户中。我的代码是如下架构: 在调试模式下,我只有两个变量:1-这(QuoteService)2-quote 这是th日志: 您可以注意到,消息“第44行删除”已打印,但没有从hibernate查询中删除的痕迹。 这段代码不起作用:使用customerDao和quoteLineDao的
问题内容: 我在Junit应用程序上下文文件中定义了三个(JDBC)。其中两个需要进行事务管理;使用这两个数据源时,我不必链接任何方法(它们完全彼此独立)。 当我使用单个事务管理器作为时,我没有问题,即使已被使用但未在相应方法中进行管理。尽管如此,在还需要管理来自各种DAO类的方法(仅使用这些方法)后,我添加了第二个事务- 。上下文文件包含以下内容: 由于要定义多个事务管理器,因此我用他们自己的值
是否可以使用Hibernate Spring对以下内容进行建模。 公开会议 我使用Spring TransactionTemplate,它同时执行会话事务生存期范围。 原因是,有时我在业务流程中有几个阶段,我希望在每个阶段完成后提交。但是,我希望继续使用相同的持久对象。如果每个事务都有一个单独的会话,则会出现暂时/分离的异常,因为原始会话已关闭。 这有可能吗?
null 下面是一个示例代码- 我的问题是,updateDb02中的setRollbackOnly()只回滚Db01事务。
我正在使用Spring AMQP(RabbitMQ实现),我试图将单个事务传播到多个线程中。 例如,假设有3个队列,名称为X、Y、Z,首先我使用thread-1从队列X获取一条消息,然后,该消息被提供给thread-0,thread-0中的消息被克隆并通过thread-3发送到队列Y、thread-2和队列Z。线程0等待线程3和线程4的完成,以提交或回滚消息。注意,这里我使用了4个线程。 我想要的