gpt4 book ai didi

java - Hibernate session 工厂

转载 作者:搜寻专家 更新时间:2023-11-01 04:02:22 25 4
gpt4 key购买 nike

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中做什么

最佳答案

应用程序从 session 工厂获取 session 实例。SessionFactory在application中大多配置为Singleton,如果您使用的是 Spring,它将在应用程序上下文中配置为单例。

SessionFactory 缓存生成SQL语句等映射 Hibernate 在运行时使用的元数据。

已在一个工作单元中读取的缓存数据,可能在未来的工作单元中重复使用。

可以从Configuration类中获取session factory的对象

SessionFactory sessionFactory =
Configuration.buildSessionFactory();

在您的 session 中。您已经使用 AnnotationSessionFactoryBean 类配置了 sessionFactory

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

并且您已经设置了一些需要的 session 工厂属性。

HibernateTemplate 是 Spring 提供的一个类:

Helper class that simplifies Hibernate data access code. Automatically converts HibernateExceptions into DataAccessExceptions, following the org.springframework.dao exception hierarchy.

关于java - Hibernate session 工厂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4561450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com