TransactionException: Transaction not successfully started
18,832
Solution 1
You should not do session.getTransaction().commit();
this, the @transactional will take care of it. Remove it, you should be fine.
Solution 2
where you begin the transaction. i can't see this line session.beginTrainsaction(); once you begin the transaction then only you can commit and rollback
Author by
Admin
Updated on June 07, 2022Comments
-
Admin almost 2 years
I have following dao:
@Repository("userDao") public class UserDaoImpl implements UserDao { @Autowired private SessionFactory sessionFactory; @Transactional public void add(User user) { Session session = sessionFactory.getCurrentSession(); session.save(user); session.getTransaction().commit(); } }
it is invokes from
@Controller public class HomeController { @Autowired private UserDao userDao; @RequestMapping(value = "/test") public ModelAndView test() { User user = new User(); user.setName("34r"); userDao.add(user); ModelAndView model = new ModelAndView("home"); model.addObject("userList", null); return model; } }
in browser I try to access to this link
And finally I get following stacktrace:
SEVERE: Servlet.service() for servlet [appServlet] in context with path [/SpringMvcHibernateXML] 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 at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.commit(AbstractTransactionImpl.java:172)
I have following configuration:
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="configLocation" value="classpath:hibernate.cfg.xml" /> </bean> <tx:annotation-driven /> <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean>
How to fix this problem?
-
Chetan Nellekeri about 7 yearsThank you.. I found it useful