标签: sessionfactory

如何使这个线程安全

我有以下用于Fluent NHibernate的SessionFactory.

我收到了错误

创建SessionFactory时使用了无效或不完整的配置.

具有InnerException

已添加具有相同键的项目.

这个问题只是偶尔发生,我的应用程序大多数情况下工作正常.

基于NHibernate:System.Argument异常:已添加具有相同键的项目我猜我的类不是线程安全的,这可以解释此错误的间歇性.

using System;
using NHibernate;
using NHibernate.Cache;
using NHibernate.Cfg;
using FluentNHibernate.Cfg;
using FluentNHibernate.Cfg.Db;
using WSS.Data.Domain;

namespace WSS.Data {
    public static class SessionFactory {
        private static ISessionFactory _factory = null;
        private static ISessionFactory GetFactory() {
            if (_factory == null) {
                NHibernate.Cfg.Configuration config;
                config = new NHibernate.Cfg.Configuration();
                config.Configure();
                if (config == null) {
                    throw new InvalidOperationException("NHibernate configuration is null.");
                }


                config.AddAssembly("WSS.Data");
                _factory = config.BuildSessionFactory();
                if (_factory == null) {
                    throw new InvalidOperationException("Call to …
Run Code Online (Sandbox Code Playgroud)

sessionfactory thread-safety fluent-nhibernate

4
推荐指数
1
解决办法
1650
查看次数

Spring Hibernate SessionFactory

如何使用java配置创建SessionFactory?

@Bean
public SessionFactory sessionFactory(){
    AnnotationSessionFactoryBean sessionFactoryBean = new AnnotationSessionFactoryBean();
    sessionFactoryBean.setConfigLocation(new ClassPathResource("hibernate.cfg.xml"));
    return sessionFactoryBean.getObject();
}
Run Code Online (Sandbox Code Playgroud)

由于某种原因,这不起作用......它总是返回null.

spring hibernate sessionfactory

4
推荐指数
3
解决办法
5万
查看次数

SessionFactory 在尝试对 DAO 类进行单元测试时未自动装配

我遇到了一个奇怪的情况,当我将它作为 Web 应用程序运行时,我定义的 sessionFactory 会自动连接到 DAO 类。

但是,当我尝试对这个 DAO 类进行单元测试时,spring 不会将 sessionFactory 自动装配到 DAO 类并抛出以下异常。

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'activityDAO': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.hibernate.SessionFactory com.adwitiya.vdb.data.activity.ActivityDAO.sessionFactory; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [org.hibernate.SessionFactory] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:287)   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1106)  at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)     at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)  at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)   at …
Run Code Online (Sandbox Code Playgroud)

java spring unit-testing hibernate sessionfactory

4
推荐指数
1
解决办法
7758
查看次数

如何从Hibernate 4.3.4.Final中检索sessionFactory?

以前我使用以下代码来配置sessionFactory,但是在将我的hibernate版本从4.2.1.Final升级到4.3.4.Final后,我无法使用以下代码检索sessionFactory,因为不推荐使用ServiceRegistryBuilder().

我使用此链接创建它,但提供的函数没有返回任何东西,因此它遇到预编译错误.

 private static SessionFactory configureSessionFactory() {
        try {
            Configuration configuration = new Configuration();
            configuration.configure();
            serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();
            sessionFactory = configuration.buildSessionFactory(serviceRegistry);
            return sessionFactory;
        } catch (HibernateException e) {
            System.out.append("** Exception in SessionFactory **");
            e.printStackTrace();
        }
        return sessionFactory;
    }

     static {
    try {
        sessionFactory = configureSessionFactory();
    } catch (Exception e) {
        System.err.println("%%%% Error Creating SessionFactory %%%%");
        e.printStackTrace();
    }
}

private HibernateUtil() {
}

public static SessionFactory getSessionFactory() {
    return sessionFactory;
}

public static Session getSession() throws HibernateException { …
Run Code Online (Sandbox Code Playgroud)

java hibernate sessionfactory

4
推荐指数
1
解决办法
1万
查看次数

ASP.NET中的FluentNHibernate会话管理

NHibernate新手(我的免责声明).我遇到了一篇关于MVC的类似且有趣的文章,但是,我对在通用Web应用程序中管理NHibernate会话的一般最佳实践更为好奇.

我遇到了Burrow项目,但我开始意识到似乎有几个不同的方向.我知道每次我需要触摸数据库时创建一个新的SessionFactory可能不符合我的最佳利益,所以我对社区管理会话的工作感兴趣.你用Burrow吗?你将SessionFactory包装成单例吗?

任何方向或见解总是非常感激.

c# nhibernate singleton sessionfactory nhibernate-burrow

3
推荐指数
1
解决办法
2339
查看次数

Hibernate:我们究竟需要关闭SessionFactory对象

我正在为我的应用程序使用Hibernate 3版本.

在浏览Hibernate的教程时,我发现SessionFactory应该只为应用程序创建一次.所以为此,我决定在类中使用静态块,并使用静态方法返回如图所示.

public class SessionFactoryInitiliaztion {
    static {
        try {
            sessionFactory = new Configuration().configure().buildSessionFactory();
        } catch (Exception x) {
            x.printStackTrace();
        }
    }

    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }
}
Run Code Online (Sandbox Code Playgroud)

我究竟需要在哪里关闭这个sessionFactory对象,以便它重新调用内存?

hibernate sessionfactory

3
推荐指数
1
解决办法
5532
查看次数

如何从实体管理器访问Hibernate统计信息?

我使用的是Spring 3.1.1.RELEASE,JUnit 4.8.1和Hibernate 4.1.5.Final.我正在尝试测试我的二级缓存是否配置正确,但我不确定如何做到这一点.我正在使用JPA实体管理器,在Spring中配置如此......

<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="jpaDialect">
        <bean class="org.collegeboard.springboard.core.jpa.HibernateJpaDialect">
            <property name="flushMode" value="COMMIT"/>
        </bean>
    </property>
    <property name="jpaVendorAdapter">
        <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"/>
    </property>
    <property name="persistenceXmlLocation" value="classpath:META-INF/test-persistence.xml"/>
    <property name="persistenceUnitName" value="orgTestingDatabase"/>
    <property name="dataSource" ref="dataSource"/>
</bean>

<bean id="sharedEntityManager" class="org.springframework.orm.jpa.support.SharedEntityManagerBean">
   <property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>
Run Code Online (Sandbox Code Playgroud)

我已经配置了我的二级缓存...

    <property name="hibernate.cache.use_second_level_cache">true</property>
    <property name="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</property>
    <property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property> 
    <!--  Collect stats, this is for testing if the cache is working -->
    <property name="hibernate.generate_statistics">true</property>
Run Code Online (Sandbox Code Playgroud)

如何在给定javax.persistence.EntityManager的情况下访问org.hibernate.stat.Statistics对象?显然,我需要以某种方式访问​​SessionFactory,但我无法找出适当的强制转换系列.

谢谢, - 戴夫

junit spring hibernate sessionfactory second-level-cache

3
推荐指数
1
解决办法
8885
查看次数

Spring 4 + Hibernate 4 IllegalArgumentException:属性'sessionFactory'是必需的

我正在使用Spring Data和Hibernate编写DAL但是我遇到了一个IllegalArgumentException异常,它阻止了我的工作.

这是DALConf.java包含DataSource和持久性异常转换处理器配置的类

package my.dal.config;

import java.util.Properties;

import javax.annotation.Resource;
import javax.sql.DataSource;

import org.apache.commons.dbcp2.BasicDataSource;
import org.apache.commons.dbcp2.BasicDataSourceFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.core.env.Environment;
import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor;


@Configuration
@ComponentScan(basePackages = { "my.dal" })
@PropertySource("classpath:dbconnection.properties")
public class DALConfig {

    private static final String PROPERTY_NAME_DATABASE_DRIVER = "db.driver";  
    private static final String PROPERTY_NAME_DATABASE_PASSWORD = "db.password";  
    private static final String PROPERTY_NAME_DATABASE_URL = "db.url";  
    private static final String PROPERTY_NAME_DATABASE_USERNAME = "db.username";  
    private static final String PROPERTY_NAME_POOL_INITIAL_SIZE = "pool.initialsize";
    private static final String PROPERTY_NAME_POOL_MAX_IDLE …
Run Code Online (Sandbox Code Playgroud)

java hibernate sessionfactory illegalargumentexception spring-data

3
推荐指数
1
解决办法
6296
查看次数

java.lang.ClassNotFoundException:javax.persistence.NamedStoredProcedureQuery - Hibernate错误

以上异常一直在抛出创建一个hibernate会话工厂.

在此输入图像描述

在应用程序li​​b文件夹中有hibernate-jpa-2.1-api和javax.persistence.2.1.0.我可以在两个jar中看到NamedStoredProcedureQuery类.但我得到classnotfoundexception的运行时错误.有什么建议吗?

java hibernate sessionfactory hibernate-session

3
推荐指数
1
解决办法
7881
查看次数

在休眠中设置allowOutOfTransactionUpdateOperations属性

我正在使用Hibernate 5.2,只是想检查AvailableSettings 中是否有一个配置属性,我可以在构建 sessionFactory 时使用该属性将allowOutOfTransactionUpdateOperations设置为true。通过查看代码,可以使用 sessionFactoryBuilder.allowOutOfTransactionUpdateOperations(true); 进行设置;但问题是我们只能在Configuration类中获取sessionFactoryBuilder的引用。

我尝试参考https://docs.jboss.org/hibernate/orm/5.2/javadocs/org/hibernate/boot/SessionFactoryBuilder.html#allowOutOfTransactionUpdateOperations-boolean-

但它没有提及AvailableSettings 是否有任何可用的内容。

有没有人尝试在构建 sessionFactory 时使用元数据或其他方式设置此属性?

请具体回答hibernate 5.2。

java hibernate sessionfactory hibernate-mapping

3
推荐指数
1
解决办法
5112
查看次数