java - 交易异常 : Transaction not successfully started

标签 java spring hibernate session transactions

我有以下道:

@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();
    }
}

调用自

@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;

    }

}

在浏览器中我尝试访问这个链接

最后我得到以下堆栈跟踪:

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)

我有以下配置:

<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>

如何解决这个问题?

最佳答案

你不应该做 session.getTransaction().commit(); 这个,@transactional 会处理它。去掉它,你应该没问题。

关于java - 交易异常 : Transaction not successfully started,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24657977/

相关文章:

java - 无法在 Eclipse 中成功运行 selenium 测试

java - Spring 中 POJO 之间是否有自动翻译器?

java - 带有@Document的mongodb Multi-Tenancy 咒语

java - Spring jdbcTemplate Junit

hibernate - 将 c3p0 与 Tomcat 8 数据源一起使用

java - Hibernate:更新而不是插入

java - 为什么 Spring 的事务管理不适用于此配置?

java - 在java程序中隐藏查询头

java - equals() 仅依赖于 ID 是否合适?

java - 计算有多少 bean 值不为空的最有效方法是什么?