当前位置: 首页 > 知识库问答 >
问题:

从应用程序获取Hibernate会话计数

冯胤
2023-03-14

我创建了简单的Java应用程序来学习Spring和hibernate集成。我做了所有的设置和应用程序也工作良好。

一切正常。但是,我想看看我的应用程序当前使用了多少会话,比如打开的连接和关闭的hibernate连接。

在Sessionfactory类中,我们使用“getStatistics”方法来检索hibernate统计数据,但这对我没有帮助。它也给了我零分。请找到下面的图片。

<?xml version="1.0" encoding="UTF-8"?>

http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd“>

<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource"
    destroy-method="close">
    <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
    <property name="url" value="jdbc:oracle:thin:@localhost:1521:XE" />
    <property name="username" value="rocky" />
    <property name="password" value="rocky" />
</bean>

<bean id="mySessionFactory"
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource" ref="myDataSource" />
    <property name="mappingResources">
        <list>
            <value>orders.hbm.xml</value>
        </list>
    </property>
    <property name="hibernateProperties">
        <map>
            <entry>
                <key>
                    <value>hibernate.show_sql</value>
                </key>
                <value>true</value>
            </entry>
            <entry>
                <key>
                    <value>hibernate.dialect</value>
                </key>
                <value>org.hibernate.dialect.OracleDialect</value>
            </entry>
            <entry>
                <key>
                    <value>hibernate.query.factory_class</value>
                </key>
                <value>org.hibernate.hql.classic.ClassicQueryTranslatorFactory</value>
            </entry>
            <entry>
                <key>
                    <value>connection.autocommit</value>
                </key>
                <value>true</value>
            </entry>
        </map>
    </property>
</bean>

<bean id="transactionManager"
    class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory" ref="mySessionFactory" />
</bean>

<bean id="txManager"
    class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory" ref="mySessionFactory" />
</bean>

<bean id="transactionProxy"
    class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
    <property name="transactionManager" ref="txManager" />
    <property name="transactionAttributes">
        <props>
            <prop key="*">PROPAGATION_REQUIRED</prop>
        </props>
    </property>
    <property name="target" ref="myServiceClass">
    </property>
</bean>

<tx:annotation-driven transaction-manager="txManager" />

<bean id="myServiceClass" class="myServiceClass">
    <property name="sessionFactory" ref="mySessionFactory" />
</bean>

共有1个答案

公西志文
2023-03-14

看看你的代码,它会发现你还没有启用你的会话工厂的静态

步骤到无法会话工厂静态

SessionFactory sessionFactory = getSessionFactoryForApplication();
Statistics stats = sessionFactory.getStatistics();
stats.setStatisticsEnabled(true);

摘自本文

 类似资料:
  • 我似乎无法让我的Spring JPA配置正常工作。我有一个Spring REST服务。如果我将所有实体设置为FetchType.EAGER,一切都按预期工作。但是我不想这样做,原因很明显。 当我将实体设置为FetchType时。懒惰,我得到以下错误: org.hibernate.LazyInitializationException:未能懒惰地初始化角色集合:com.service.entitie

  • 我在GWT应用程序中使用hibernate,其中我有一个单独的客户机/服务/业务/dao层。 服务/业务层使用dao层获取/更新用于请求处理的模型。问题是,我遵循DOA类方法中打开/关闭hibernate会话的反模式。 一般的Hibernate指南似乎建议,我们应该有一个请求范围的会话。这可以在几个地方完成,比如servlet过滤器或服务层。我们可以打开会话并将其注入到DAO层,并在完成请求之前在

  • 问题内容: 您如何在Java Desktop Swing应用程序中进行Hibernate会话管理?您是否使用一个会话?多个会议? 以下是有关此主题的一些参考资料: http://www.hibernate.org/333.html http://blog.schauderhaft.de/2008/09/28/hibernate-sessions-in-two-tier-rich-client-ap

  • 问题内容: 如何在Hibernate拦截器中获取Hibernate会话? 我正在尝试使用Hibernate通过组织ID透明地强制执行数据访问。我设置了一个全局筛选器,以按组织ID筛选所有查询。现在,在保存/更新之前,我需要使用实体拦截器在所有实体上设置组织ID。 组织ID来自HttpSession 我已经在Hibernate会话中将Organizational Id设置为Filter属性,我想在我

  • 环境: Spring4座 Spring MVC Spring REST web服务将为客户机公开API,客户机将在UI(ASP.NET)上显示它。响应是在JSON中发送的。 请考虑以下方案: 客户端调用REST api以获取具有ID的用户。dao层获取用户实体并传送给客户端。 考虑到上图,通过Spring REST将用户对象(或响应)发送到客户端的最佳设计方法是什么? > 创建模仿实体对象的对象(

  • 问题内容: 我目前正在开发我的一个(相当大的)宠物项目,这是一个Swing应用程序,它本质上需要多线程。几乎所有用户交互都可能通过Internet从某些远程服务器获取数据,因为我既不能控制这些服务器,也不能控制Internet本身,因此不可避免的是需要较长的响应时间。EDT忙时,Swing UI显然无法重绘自身,因此所有远程服务器调用都需要由后台线程执行。 我的问题: 后台线程获取的数据被本地(内