2017-01-29 34 views
2

現在、Beanの作成と設定の設定をXMLベースのJAVAベースのスプリング設定に変更しています。私はdb設定を動かすことに固執していますか?これらのhibernate db設定をJAVAベースの設定ファイルに書き込むにはどうしたらいいですか?JAVAベースのスプリング設定でHibernate Db接続設定を設定する方法

<bean 
    class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor" /> 
<bean id="sessionFactory" 
    class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
    <property name="hibernateProperties"> 
     <value> 
      hibernate.connection.driver_class=com.mysql.jdbc.Driver 
      hibernate.connection.url=jdbc:mysql://url 
      hibernate.connection.username=username 
      hibernate.connection.password=password 
      hibernate.dialect=org.hibernate.dialect.HSQLDialect 
      hibernate.show_sql=false 
      </value> 

    </property> 
    <property name="packagesToScan" value="com.test" /> 

</bean> 


<tx:annotation-driven /> 

<bean id="transactionManager" 
    class="org.springframework.orm.hibernate3.HibernateTransactionManager"> 
    <property name="sessionFactory" ref="sessionFactory" /> 
</bean> 
<tx:annotation-driven proxy-target-class="true" /> 

トランザクションの詳細を追加しました。私はこの例外を取得しています:

によって引き起こさ

:java.lang.ClassNotFoundExceptionが: org.hibernate.context.spi.CurrentSessionContext

答えて

4

ここではconfigです。また、最終的なソリューションで必要となるトランザクション管理機能も追加しました。

import java.util.Properties; 
import javax.sql.DataSource; 
import org.springframework.context.annotation.Bean; 
import org.springframework.context.annotation.Configuration; 
import org.springframework.jdbc.datasource.DriverManagerDataSource 
import org.springframework.orm.hibernate3.HibernateTransactionManager; 
import org.springframework.orm.hibernate3.LocalSessionFactoryBean 
import org.springframework.transaction.annotation.EnableTransactionManagement; 

@Configuration 
@EnableTransactionManagement 
public class DbConfig{ 

@Bean 
public DataSource getDatasource() { 

     DriverManagerDataSource dataSource = new DriverManagerDataSource(); 
     dataSource.setDriverClassName("com.mysql.jdbc.Driver"); 
     dataSource.setUrl("jdbc:mysql://url"); 
     dataSource.setUsername("username"); 
     dataSource.setPassword("password"); 

     return dataSource; 
    } 

@Bean 
public SessionFactory getSessionFactory() throws IOException{ 

    LocalSessionFactoryBean sessionFactoryBean = new LocalSessionFactoryBean(); 
    sessionFactoryBean.setPackagesToScan("com.test"); 
    sessionFactoryBean.setHibernateProperties(hibernateProperties()); 
    sessionFactoryBean.setDataSource(getDatasource()); 
    sessionFactoryBean.afterPropertiesSet(); 

    return sessionFactoryBean.getObject(); 
} 

@Bean 
    public HibernateTransactionManager getTransactionManager() throws IOException{ 
     HibernateTransactionManager transactionManager = new HibernateTransactionManager(); 
     transactionManager.setSessionFactory(getSessionFactory()); 

     return transactionManager; 
    } 


private static Properties getHibernateProperties() { 

     Properties hibernateProperties = new Properties(); 
     hibernateProperties.put("hibernate.dialect", "org.hibernate.dialect.HSQLDialect"); 
     hibernateProperties.put("hibernate.show_sql", false); 
     // other properties 

     return hibernateProperties; 
    } 
+0

おかげで、私はがNoClassDefFound例外を取得しています私は確認してみましょうとバックトランザクション管理 – user3681970

+0

小さなアップデートを入手:)。私はいくつかの詳細と例外で質問を更新しました。あなたは助けてもらえますか? –

+0

の – user3681970

関連する問題