2017-08-20 6 views
2

私は春の休止状態に慣れていません。 私はsprin 4.3.8とHibernate 5.2を使用しています。"現在のスレッドのトランザクション同期セッションを取得できませんでした"

私はネット上で利用可能なソリューションを試しましたが、私はそれらのコードをすべて持っていますが、私はこのエラーを解決してくれました。

エラー:

Exception in thread "main" org.hibernate.HibernateException: Could not obtain transaction-synchronized Session for current thread 
at org.springframework.orm.hibernate5.SpringSessionContext.currentSession(SpringSessionContext.java:133) 
at org.hibernate.internal.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:456) 
at com.travello.daoImpl.ActivityDAOImpl.getActivity(ActivityDAOImpl.java:43) 
at com.travello.model.SpringMain.main(SpringMain.java:17) 
ここ

ですActivityListDAOImpl:

@Transactional 
public class ActivityDAOImpl implements ActivityDAO { 

@Autowired 
private SessionFactory sessionfactory; 



public SessionFactory getSessionfactory() { 
    return sessionfactory; 
} 

public void setSessionfactory(SessionFactory sessionfactory) { 
    this.sessionfactory = sessionfactory; 
} 

@Override 
public ActivityList getActivity(int activity_id) { 
    Session session = sessionfactory.getCurrentSession(); 
    ActivityList activity = session.get(ActivityList.class, activity_id); 
    return activity; 
    } 
} 

主な方法:

public class SpringMain { 


public static void main(String[] args) { 

    @SuppressWarnings("resource") 
    ApplicationContext context = new ClassPathXmlApplicationContext   ("spring.xml"); 
    ActivityDAOImpl dao = (ActivityDAOImpl) context.getBean("activityDao", ActivityDAOImpl.class); 

    ActivityList activity = dao.getActivity(1); 
    System.out.println(activity.getActivityName()); 
    System.out.println("Done"); 


} 

} 

spring.xml

<?xml version="1.0" encoding="UTF-8"?> 
    <beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:tx="http://www.springframework.org/schema/tx" 
    xsi:schemaLocation=" 
    http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
    http://www.springframework.org/schema/context 
    http://www.springframework.org/schema/context/spring-context-3.0.xsd 
    http://www.springframework.org/schema/tx 
    http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> 

    <context:property-placeholder location="classpath:resources/database.properties" /> 
    <context:annotation-config/> 
    <context:component-scan base-package="com.travello" /> 

<bean id="dataSource" 
     class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
     <property name="driverClassName" value="${database.driver}" /> 
     <property name="url" value="${database.url}" /> 
     <property name="username" value="${database.user}" /> 
     <property name="password" value="${database.password}" /> 
    </bean> 


    <bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> 
     <property name="dataSource" ref="dataSource" /> 
     <property name="configLocation" value="hibernate.cfg.xml" /> 
    </bean> 



    <bean id="hibernateTransactionManager" 
     class="org.springframework.orm.hibernate5.HibernateTransactionManager"> 
     <property name="sessionFactory" ref="sessionFactory" /> 
    </bean> 



    <bean id="activityDao" class="com.travello.daoImpl.ActivityDAOImpl"> 
     <property name="sessionfactory" ref="sessionFactory" /> 
    </bean> 

    </beans> 

spring.xmlに@Transationalアノテーションが適用され、同じBeanにBeanがありますが、このエラーがあります。

答えて

関連する問題