假期自己做一个SSH项目,用的是Struts2.3.16.1,Hibernate4.3.4,Spring4.0.2做整合,事务管理用的是每个Bean都有一个代理的方式,在Dao层
private SessionFactory sessionFactory;
public SessionFactory getSessionFactory() {
return sessionFactory;
}
public void setSessionFactory(SessionFactory sessionFactory) {log.debug("注入sessionFactory");
this.sessionFactory = sessionFactory;
}
public Session getSession() {
return sessionFactory.getCurrentSession();
}
获得sessionFactory,进行数据库操作时开始报错
List result = getSession().createSQLQuery("SELECT studentId,passWord From student WHERE studentId=1;").list();
一开始报 : No Session found for current thread ,我在getSession()方法中检查了SessionFactory是有对象的
之后百度了一大堆解决方法,提示我在Hibernate.cfg.xml用current_session_context_class
thread
测试,调用getSesion() , 报错:createSQLQuery is not valid without active transaction
换成
jta
依然报错:No TransactionManagerLookup specified
向各位大神求助~~~
Trasaction trasaction=session.beginTrasaction();
session.createSQLQuery().....
trasaction.commit();