【发布时间】:2016-04-25 02:37:37
【问题描述】:
我的代码的旧版本:
Session session = sessionFactory.openSession();
Query query = session.createQuery("From User");
List<Users> users = query.list();
session.close();
我配置hibernate.cfg.xml文件:
线程
context.xml
当前代码:
Session session = sessionFactory.getCurrentSession();
Transaction tx = session.beginTransaction();
Query query = session.createQuery("From User");
List<Users> list = query.list();
tx.commit();
我必须添加交易代码,否则会出错
org.hibernate.HibernateException: createQuery 在没有活动事务的情况下无效
我缺少什么配置?
ApplicationContext.xml
<?xml version='1.0' encoding='UTF-8' ?>
......
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean" >
<property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
</bean>
<context:annotation-config />
<context:component-scan base-package="*" />
<tx:annotation-driven transaction-manager="transactionManager"/>
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
</beans>
public class IndexController {
@Autowired
UserService users;
@RequestMapping("/index")
public String index(ModelMap model ) {
User user= users.test();
model.put("user", user);
return "index";
}
【问题讨论】:
-
请检查stackoverflow.com/questions/18832889/…。它可能对您有所帮助。
-
@eg04lt3r 该帖子建议删除 current_session_context_class。如果我删除它,这将是一个无会话错误。
标签: java hibernate spring-mvc transactions