Hibernate SessionFactory - PullRequest
       1

Hibernate SessionFactory

3 голосов
/ 30 декабря 2010
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>

Что это делает в бобе

Ответы [ 3 ]

8 голосов
/ 30 декабря 2010

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

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

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

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

SessionFactory sessionFactory =
Configuration.buildSessionFactory();  

Здесь, в вашей конф.вы настроили sessionFactory с использованием класса AnnotationSessionFactoryBean

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

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

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

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

6 голосов
/ 24 января 2014
  1. SessionFactory используется в качестве интерфейса для доставки объекта сеанса для всего приложения или всего приложения гибернации.

  2. Обычно это будет один SessionFactory и может использоваться всеми потоками приложений. SessionFactory является поточно-ориентированным.

  3. SessionFactory - это кэш данных второго уровня, которыйможно повторно использовать между транзакциями на уровне процесса или кластера.

                                                                          Continue.......
    
3 голосов
/ 30 декабря 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...