public class A{
@Async
public void methodA(){
someService.methodB();
}
}
public class someServiceImpl implements someService{
@Transactional(noRollbackFor = Exception.class)
public void methodB(){
try{
//to do
}catch(Exception e){
l
我正在用Java开发一个使用Spring框架的小应用程序。作为其中的一部分,我在这个spring项目中开发了一个命令行工具,它读取CSV文件并将其插入到MySQL数据库中。
我想使用Soring自己的事务管理,我发现使用@Transactional的注释性方法很有吸引力。问题是,即使产生异常,带有此注释的函数也不会回滚。
这是我的代码中的一小部分,我认为它与这个问题相关:
public static void main(String[] args) throws Exception {
//some variables and stuff here
//getting ap
我试着写一个测试类,它测试一个dao方法。dao方法是在电子邮件之后从求职者表中进行选择,它使用了一个getCurrentSession,因此我的测试类如下所示
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="classpath:spring-config.xml")
@TransactionConfiguration(transactionManager="txManager")
@Transactional
public class JobSeekerSe
我在后台bean中为JSF中的动作按钮定义了一个方法。我使用Hibernate作为ORM。我能保存新的数据。但是,当我试图更新相同的数据时,会引发事务回滚异常。
javax.faces.FacesException: #{itemModificationBean.saveData('0','IM')}: org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only
在进行批处理时,我将得到以下异常
encountered an error.org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only
at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:252)
at java.util.concurrent.FutureTask.get(FutureTask.java:
我们已经将spring版本升级到了4.3.9,升级后出现事务回滚异常
org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:724)
at org
我在Spring中使用JPA。我正在尝试进行批量导入。如果批量导入有问题,那么我想单独插入,如果这也失败了,那么我想保存到复制表。我为此编写了一个逻辑,但每次都会收到这个错误:
Could not commit JPA transaction; nested exception is javax.persistence.RollbackException: Transaction marked as rollbackOnly
我的JPA设置如下所示:
@Bean(name = "dataSource", destroyMethod = "")
public
我正在使用jBPM5,并将Bitronix Transaction Manager (BTM)配置为供jBPM流程持久性单元使用的事务管理器。
在过去的两周中,一切正常,但是突然它开始失败,并出现以下异常,这导致我重新启动应用服务器。重启后,一切正常工作,如预期。
异常堆栈跟踪:
com.xxx.jbpm.workflow.exception.WorkflowException: Could not commit session or rollback
at org.springframework.context.event.SimpleApplicationEventMulticaste
这是大多数DAO中使用的典型设置:
@Transactional
@Repository
public class DAO {
@Autowired
SessionFactory sessionFactory;
public void save(Entity o) {
sessionFactory.getCurrentSession().save(o);
}
public Entity load(int id) {
return (Entity)sessionFactory.getCurrentSession().get(Enti
我试图在我的服务层中捕获一个ConstraintViolationException,并重新抛出一个用户定义的检查异常。我正在捕获控制器中的异常,并将错误对象添加到BindingResult中。我使用声明式事务管理,并尝试使我的DAO成为一个存储库,并添加了一个PersistenceExceptionTranslationPostProcessor来捕获spring转换的异常。我还添加了一个txAdvice来回滚所有可抛出的对象。我的异常确实被捕获了,但是我得到了一个错误500:
Hibernate: insert into user (email, password, first_name,
尽管数据已成功保存到表中,但我们仍收到事务失败的提示。与已经配置的事务数据库超时相比,查询执行时间非常短。
这是一个基于应用程序间请求-响应消息传递的场景,两个应用程序分别部署在WAS服务器上。
[9/21/18 12:36:02:432 CEST] 00000021 TimeoutManage I WTRN0124I: When the timeout occurred the thread with which the transaction is, or was most recently, associated was Thread[Messenger-Listener-95,5,
我在启动时使用@PostConstruct注解执行一个方法。此方法必须检查存储在DB表中的值。如果它不存在,那么它必须插入它。检查DB中的值是正确的,但是如果我必须持久化它,它不会将它写到DB中。它没有抛出任何异常,persist()的执行(显然)没有问题,只是值没有插入到DB中。
此外,一旦一切就绪,如果我手动调用该方法(例如,从Controller ),它将正确地插入值。
@PostConstruct
public void insertIfNecessary()
{
Request r = Request.findRequestForUser(this.me);
if ( r
在Hibernate中,从数据库获取对象时发生以下错误。你们能让我知道在什么情况下会发生这个错误吗?代码中没有任何更改。这段代码已经成功运行了好几年。
出现这种异常的可能原因是什么?欢迎任何建议。非常感谢:-)
java.sql.SQLException: Attempt to continue working after transaction rolledback !
at com.ibm.ws.rsadapter.AdapterUtil.toSQLException(AdapterUtil.java:1376)
at com.ibm.ws.rsadapter.jdbc.WSJdbcCon
关于这个例外,我只知道来自Spring的和一些论坛帖子,上面有结霜的开发人员贴着巨大的堆栈跟踪,没有回复。
来自Spring的文档:
当试图提交事务导致意外回滚时引发
我想一劳永逸
到底是什么原因造成的?
- Where did the rollback occur? in the App Server code or in the Database?
- Was it caused due to a specific underlying exception (e.g. something from java.sql.\*)?
- Is it related to Hib