2017-01-31 1 views
0

私は.xmlファイルから呼び出すSQLクエリをログに記録しようとしています。私が直面している問題は、ログが表示されても、フォーマットが正しくないことです。また、なぜそれが繰り返されるのかわかりません。コンソールのHibernate SQLクエリフォーマット

[main] INFO org.dozer.DozerBeanMapper - dozer bean mapperの新しいインスタンスを初期化します。 [main] INFO org.dozer.DozerBeanMapper - dozer bean mapperの新しいインスタンスを初期化します。 [main] INFO org.springframework.orm.hibernate5.HibernateTransactionManager - HibernateTransactionManager用のHibernate SessionFactoryのDataSource [[email protected]]の使用 [main] INFO org.springframework.aop.framework.CglibAopProxy - プロキシを使用することができません[public final void com.servicios.test.TestRestauranteManager.findProveedoresByIdRestaurante()throws com.servicios.util.exceptions.AlergenosException]最終的です:プロキシ経由でこのメソッドへの呼び出しはすべてターゲットにルーティングされませんインスタンス。 [main] INFO org.springframework.test.context.transaction.TransactionContext - テストコンテキストのトランザクション(1)を開始する[DefaultTestContext @ 436bd4df testClass = TestRestauranteManager、testInstance = [email protected]、testMethod = findProveedoresByIdRestaurante @ TestRestauranteManager 、{{}}、{{}}、contextInitializerClasses = '[]'、activeProfiles = '{}'のように指定します。 '、}}、propertySourceLocations =' {} '、propertySourceProperties =' {} '、contextLoader =' org.springframework.test.context.support.DelegatingSmartContextLoader '、parent = [null]]];トランザクションマネージャ[[email protected]740ff5e];ロールバック[true] レストラン0 _。 "ID_RESTAURANTE"をID_RESTA1_4_0_、レストラン0 _ "DESCRIPCION"はDESCRIPC2_4_0_、レストラン0 _ "ID_CADENA_RESTAURANTE"をID_CADEN3_4_0_から "RESTAURANTE" restaurant0_ where restaurant0 _。 "ID_RESTAURANTE" =? "ID_RESTAURANTE" = "ID_RESTAURANTE" = "DESCRIPCION" DESCRIPC2_4_0_、レストラン0 _ "ID_CADENA_RESTAURANTE"をID_CADEN3_4_0_から "RESTAURANTE" restaurant0_ where restaurant0 _。 "ID_RESTAURANTE" =? 結合パラメータは、[1]と[BIGINT] - の新しいインスタンスを初期化する - [0]

私は

[メイン] INFO org.dozer.DozerBeanMapperのようなものを持っていると思いますドーザービーンマッパー。 [メイン]情報org.dozer.DozerBeanMapper - ドーザーBeanマッパーの新しいインスタンスを初期化しています。 INFO org.springframework.orm.hibernate5.HibernateTransactionManager [メイン] - データソースHibernateTransactionManagerための[[email protected]] のHibernateのSessionFactoryの[メイン] INFO org.springframework.aop.frameworkを使用します。 CglibAopProxy - プロキシ 方法[パブリック最終無効 com.servicios.test.TestRestauranteManager.findProveedoresByIdRestaurante() がcom.servicios.util.exceptions.AlergenosExceptionをスロー]それは 最終的なものであるためにできません:プロキシを経由してこのメ​​ソッドへのすべての呼び出しがしますターゲットインスタンス にルーティングしないでください。 [メイン]情報 org.springframework.test.context.transaction.TransactionContext - テストコンテキスト[DefaultTestContext @ 436bd4df testClass = TestRestauranteManager、testInstance = com.servicios.testのトランザクション(1)を開始しました。TestRestauranteManager @ 6848a051、のtestMethod = findProveedoresByIdRestaurante @ TestRestauranteManager、testException = [NULL] = mergedContextConfiguration [MergedContextConfiguration @ 149b0577 TestClassを= TestRestauranteManager、位置= '{クラスパス:テストapplicationContext.xmlを}'、クラス=「{} {}」、 contextInitializerClasses = '[]'、activeProfiles = '{}'、 propertySourceLocations = '{}' =、propertySourceProperties ''、 contextLoader = 'org.springframework.test.context.support.DelegatingSmartContextLoader'、 parent = [null]]];トランザクションマネージャ [[email protected]740ff5e]; 休止状態:。。私のlog4j.properties、 "descripcion" と "DESCRIPCION" Pを選択し、 "idProveedor"

  from 
       "RESTAURANTE_PROVEEDOR" rp 
       inner join 
        "PROVEEDOR" p 
         on rp."ID_PROVEEDOR" = p."ID_PROVEEDOR" 
      where 
       rp."ID_RESTAURANTE" = ? binding parameter [1] as [BIGINT] - [0] 

として P "ID_PROVEEDOR" は、以下である:

log4j.rootLogger=INFO, stdout 
log4j.logger.org.hibernate=INFO 
log4j.logger.org.hibernate.SQL=TRACE 
log4j.logger.org.hibernate.type=ALL 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.Target=System.out 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.rootConsola.layout.ConversionPattern=(%d{dd/MM/yyyy-HH:mm:ss}) %-5p: %-40c{1} - %m%n 

私のApplicationContext.xmlにはこれがあります

... 
<bean id="sessionFactory" 
     class="org.springframework.orm.hibernate5.LocalSessionFactoryBean" 
     p:dataSource-ref="dataSource"> 
     <property name="packagesToScan" value="com.servicios.vo"/> 
     <property name="mappingLocations"> 
      <list> 
       <value>classpath*:hibernate/queries/**/*.hbm.xml</value> 
      </list> 
     </property> 
     <property name="hibernateProperties"> 
      <props> 
       <prop key="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</prop> 
       <prop key="hibernate.show_sql">true</prop> 
       <prop key="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</prop> 
       <prop key="hibernate.ejb.naming_strategy">org.hibernate.cfg.ImprovedNamingStrategy</prop> 
       <prop key="hibernate.format_sql">true</prop> 
      </props> 
     </property> 
    </bean> 
... 

ありがとうございます!

答えて

3

hibernate.format_sqlの設定は、何かが発生した場合の例外の理由と、SQLフラグメントを含む例外がスローされた場合には適用されません。

つまり、hibernate.format_sqlは、Hibernateが実行しようとしているSQLをログに書き込むときにのみ適用されます。例外の理由の一部として含まれているときではありません。

関連する問題