gpt4 book ai didi

java - 从应用程序获取 Hibernate session 计数

转载 作者:太空宇宙 更新时间:2023-11-04 15:08:50 24 4
gpt4 key购买 nike

我创建了简单的 Java 应用程序来学习 Spring 和 hibernate 集成。我已经完成了所有设置和应用程序也运行良好。

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

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

enter image description here

我想确保我的应用程序是否使用单个 session 来执行整个应用程序操作。

有什么方法可以找出或获取 Spring+hibernate session 计数。

我的 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 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>

最佳答案

查看您的代码,看来您尚未启用 session 工厂的静态

无法进行 session 工厂统计的步骤

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

取自此 article

希望这能解决您的问题..!

关于java - 从应用程序获取 Hibernate session 计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21612574/

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