Настройка журналов гибернации в соответствии с P6SPY для просмотра фактических значений параметров в журналах

Я использую hibernate в своем java-проекте, но hibernate, который я использую, является устаревшим, означает, что версия, которую я использую, является hibernate 3, более поздней, чем я использую hibernate из Spring, который является выделенным для Spring hibernate,

я шел через сеть и нашел относительно p6SPY . jar, в котором отражены запросы, сгенерированные hibernate, поэтому вместо вопросительных знаков отображаются фактические значения параметров, что очень полезно с точки зрения разработчика, вот ссылка, по которой я прошел

http://www.mkyong.com/hibernate/how-to-display-hibernate-sql-parameter-values-solution/

Теперь я хочу иметь такую ​​же функциональность для своего приложения, но, как я уже говорил ранее, я использую hibernate, ориентированный на пружину, кроме того, наша конфигурация hibernate выполняется в одном XML, как показано ниже, но, пожалуйста, посоветуйте, как я могу настроить такую ​​функциональность P6SPY в моем приложении мой hibernate xml, как показано ниже..

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans default-lazy-init="true" default-autowire="no">
    <bean id="dataSource" class="com.persist.NullConnectionCheckerOracleDataSource" destroy-method="close">
        <property name="user" value="GTO"/>
        <property name="password" value=""/>
        <property name="connectionCachingEnabled" value="true"/>
<!--        <property name="connectionCacheName" value="ia"/> -->
        <property name="connectionCacheProperties">
            <props>
                <prop key="MaxLimit">20</prop>               
                <prop key="MinLimit">0</prop>
                <prop key="InactivityTimeout">0 </prop>
                <prop key="ConnectionWaitTimeout">60</prop>
                <prop key="PropertyCheckInterval">60</prop>
                <prop key="ValidateConnection">true</prop>
            </props>
        </property>
        <property name="URL">
            <value>jdbc:oracle:thin:@ldap://ccs.fm.ldap://ccsgcm.gcm.com:4042ldap://hkg0799xus.fm.</value>
        </property>
        <property name="connectionProperties"> 
            <props> 
                <prop key="oracle.net.ldap_loadbalance">OFF</prop>
                <prop key="v$session.osuser">@db.osuser@</prop>
                <prop key="v$session.program">@db.program@</prop>
            </props> 
        </property> 
    </bean>

    <bean id="sessionFactoryTemplate" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="configurationClass" value="org.hibernate.cfg.Configuration"/>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>
                <prop key="hibernate.jdbc.batch_size">30</prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.use_outer_join">false</prop>
                <prop key="hibernate.max_fetch_depth">10</prop>
                <prop key="hibernate.default_batch_fetch_size">150</prop>
                <prop key="hibernate.bytecode.use_reflection_optimizer">true</prop>
                <prop key="hibernate.connection.autoReconnect">true</prop>
                <prop key="hibernate.connection.release_mode">on_close</prop>
                <prop key="hibernate.cache.use_query_cache">false</prop>
                <prop key="hibernate.cache.use_second_level_cache">false</prop>
                <prop key="hibernate.cache.provider_configuration_file_resour ce_path">./config/ehcache-processor1/ehcache.xml</prop>
                <prop key="hibernate.cache.use_structured_entries ">true</prop>
                <prop key="hibernate.generate_statistics">true</prop>
                <prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>
            </props>
        </property>
    </bean>

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

    <bean id="hibernateSession" class="com.persist.HibernateSessionImpl">
        <constructor-arg><ref bean="sessionFactory"/></constructor-arg>
        <property name="txnManager" ref="txnManager"/>
    </bean>

    <bean id="hibernateAdmin" class="com.persist.HibernateAdministrationImpl">
        <constructor-arg><ref bean="sessionFactory"/></constructor-arg>
        <constructor-arg><ref bean="&amp;sessionFactory"/></constructor-arg>
    </bean>

    <bean id="systemProcessConfig" class="com.persist.SystemProcessConfiguration">
        <constructor-arg index="0" value="gp"/>
        <constructor-arg index="1" value="gp"/>
    </bean>
</beans>

1 ответ

Во-первых, вы захотите использовать последнюю версию P6Spy. В более поздних версиях было много улучшений. Кстати - он больше не размещен в SourceForge. Вы можете получить последнюю версию от Maven Central.

Для интеграции с Spring, пожалуйста, смотрите ответ на этот ранее заданный вопрос.

Другие вопросы по тегам