` 类路径: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过滤器或类似方法,这样您就可以在请求生命周期(Controller / View渲染)中使用Session。