2
我寫DAO在春季爲我所用的支柱寫一些這樣想春天Hibernate事務不能提交
@Autowired
private SessionFactory sessionFactory;
Session session=null;
Transaction tx=null;
List<Login> users= null;
try{
session=sessionFactory.getCurrentSession();
tx=session.beginTransaction();
users=session.createQuery("from Login").list();
tx.commit();
}catch(Exception e){System.out.println("commit exception:"+e);
try {tx.rollback();} catch (Exception ex) {System.out.println("rollback exception:"+ex);}
}finally{if(session!=null && session.isOpen()){session.close();}}
,但我得到這個錯誤:
可以threw exception [Request processing failed; nested exception is org.springframework.transaction.TransactionSystemException: Could not commit Hibernate transaction; nested exception is org.hibernate.TransactionException: Transaction not successfully started] with root cause org.hibernate.TransactionException: Transaction not successfully started
人請幫助我。
如果我這樣寫吧,
try{
users=sessionFactory.getCurrentSession().createQuery("from Login").list();
}catch(Exception e){System.out.println("commit exception:"+e);
其做工精細,但它是安全的?
感謝和問候
爲什麼你要啓動,提交和回滾事務而不是讓Spring使用AOP來執行它?我的猜測是,你也在使用Spring AOP來完成它,而編程事務處理正在干擾Spring自己的事務處理。 – 2013-05-10 21:17:31
你已使用@transactional服務。那麼這是最好的方法嗎? – Aadam 2013-05-11 04:28:44