TransactionException: Transaction not successfully started
hibernate, java, session, spring, transactions
Solution
You should not do `session.getTransaction().commit();` this, the @transactional will take care of it. Remove it, you should be fine.
Problem
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?