2013-07-27 90 views
-1

` 類路徑:database.properties 無法獲取當前會話

<bean id="sessionFactory" 
    class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 

    <property name="dataSource"> 
     <ref bean="dataSource" /> 
    </property> 

    <property name="hibernateProperties"> 
     <props> 
      <prop key="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</prop> 
      <prop key="hibernate.show_sql">true</prop> 
      <prop key="hibernate.hbm2ddl.auto">update</prop> 
     </props> 
    </property> 

    <property name="packagesToScan" value="org.entity"> 

    </property> 

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

</bean> 
<tx:annotation-driven/> 
<!-- not working --> 
<!-- <context:component-scan base-package="org.service"></context:component-scan> --> 

` 這是我的Spring配置文件。問題是我沒有在我的存儲庫類中使用@Repository標記的當前會話,我用@Transactional註釋標註了我的服務方法。 但是,所有的自動裝配工作正常,唯一的問題是當我嘗試獲取存儲庫類中的當前會話,並且如果我使用bean標記來實例化我的存儲庫和服務bean它的工作。我在這裏做錯了什麼?

+0

請發表具體代碼的問題,關於「我沒有在我的存儲庫類中獲取當前會話」。沒有提供代碼來顯示錯誤發生的方式/位置。投票結束。 –

回答

0

使用OpenSessionInView過濾器或類似的方法,這樣您就可以在請求生命週期(控制器/視圖呈現)期間使用Session。

+0

我不認爲如果我真的需要這樣的東西。任何我使用bean標籤時獲取會話的方式。我應該可以在這裏獲得會議。該死的究竟是怎麼回事 – varun

+0

你如何在你的@Repository類中獲得Session?給我們看一看。如果你不使用OpenSessionInView,你如何期望延遲加載在你的JSP頁面中工作? –

+0

我不想在我的jsp頁面中進行任何延遲加載,如果我想要任何惰性數據,我將初始化服務層中的實體類。我的問題是,如果需要實現一個過濾器來初始化會話,那麼當我使用XML配置文件中的標記創建bean時它是如何工作的? – varun