Вопрос: Hibernate SessionFactory


private HibernateTemplate hibernateTemplate;

        public void setSessionFactory(SessionFactory sessionFactory) {
            this.hibernateTemplate = new HibernateTemplate(sessionFactory);
    }

Что такое SessionFactory? Почему мы используем это? Для чего используется класс hibernateTemplate?

<bean id="myUserDAO" class="com.mysticcoders.mysticpaste.services.ContactSerImpl">
        <property name="sessionFactory" ref="mySessionFactory"/>
    </bean>

<bean id="mySessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
        <property name="dataSource" ref="myDataSource" />
        <property name="annotatedClasses">
            <list>
                <value>com.mysticcoders.mysticpaste.model.Contact</value>
            </list>
        </property>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.hbm2ddl.auto">create</prop>
            </props>
        </property>
    </bean>

Что это делает в bean-компоненте


3


источник


Ответы:


Приложение получает экземпляры сеанса из Session Factory. SessionFactory в основном сконфигурирован как Singleton в приложении, Если вы используете Spring, он будет настроен в контексте приложения, чтобы сделать singleton.

SessionFactory кэши генерируют SQL-запросы и другие сопоставление метаданных, которые Hibernate использует во время выполнения.

Кэшированные данные, которые были прочитаны в одной единице работы, и могут быть повторно использованы в будущем подразделении.

Вы можете получить объект фабрики сеансов из класса конфигурации

SessionFactory sessionFactory =
Configuration.buildSessionFactory();  

Здесь, в вашем conf. вы настроили sessionFactory с помощью класса AnnotationSessionFactoryBean

bean id="mySessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">

и вы установили некоторые свойства фабрики сеанса, которые необходимы.

HibernateTemplate это класс, предоставленный Spring:

Класс помощника, который упрощает код доступа к Hibernate. Автоматически преобразует HibernateExceptions в DataAccessExceptions, следуя иерархии исключений org.springframework.dao.


8



  1. SessionFactory


6



SessionFactory содержит всю информацию о сопоставлении спящего режима и отвечает за создание и обслуживание сеанса спящего режима в транзакции.


3