Я хочу интегрировать спящий с весной. В документации по Spring 3 говорится, что вы можете получить доступ к сеансу с помощью функции getCurrentSession () org.hiberate.SessionFactory, и это должно быть предпочтительнее подхода hibernateDaoSupport.
Но я хочу знать, как мы можем получить экземпляр org.hiberate.SessionFactory, если мы используем AnnotationSessionFactoryBean?
Я сделал следующее объявление bean в applicationContext.xml:
<bean id="annotationSessionFactoryBean" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="packagesToScan" value="com.mydomain"/>
<property name="hibernateProperties">
<props>
<prop key="hibernate.connection.pool_size">10</prop>
<prop key="hibernate.connection.show_sql">true</prop>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
</props>
</property>
</bean>
DAO, использующий сеанс:
<bean id="hibernateUserProfileDAO" class="com.springheatmvn.Dao.impl.hibernate.HibernateUserProfileDAO">
<property name="annotationSessionFactoryBean" ref="annotationSessionFactoryBean"/>
</bean>
В моем hibernateUserProfileDAO я хотел бы получить текущий сеанс, подобный этому
public class HibernateUserProfileDAO implements UserProfileDAO {
private AnnotationSessionFactoryBean annotationSessionFactoryBean;
public UserProfile getUserProfile() {
Session session = annotationSessionFactoryBean.getCurrentSession();
....
}
Но я вижу, что в AnnotationFactoryBean нет открытого метода getCurrentSession (). Я нашел только защищенный метод getAnnotationSession (), но он также находится в классе фабрики абстрактных сессий.
Может кто-нибудь сказать мне, где я иду не так?