2
在書「Java持久性與Hibernate」我遇到了這樣一行:啓用休眠啓動日誌
Hibernate produces all trivial CRUD SQL at startup. It caches the SQL statements
internally for future use, thus avoiding any runtime cost of SQL generation for the
most common operations.
要查看啓動日誌,它說:
Enable DEBUG logging for the org.hibernate.persister.entity package, and watch (or search) the
Hibernate startup log.
我有一個平凡的具有一個實體的應用程序我堅持在數據庫中的消息。
我在我的配置文件中啓用show_sql=true
。你可以看到我下面的配置文件:
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://127.0.0.1/ajax</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">XXXX</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- Use the C3P0 connection pool provider -->
<property name="hibernate.c3p0.min_size">5</property>
<property name="hibernate.c3p0.max_size">20</property>
<property name="hibernate.c3p0.timeout">300</property>
<property name="hibernate.c3p0.max_statements">50</property>
<property name="hibernate.c3p0.idle_test_period">3000</property>
<!-- Show and print nice SQL on stdout -->
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<!-- List of XML mapping files -->
<mapping resource="org/myapp/hibernate/first/Message.hbm.xml" />
</session-factory>
我Log4J.properties:
# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE}%5p %c{1}:%L - %m%n
# Root logger option
log4j.rootLogger=DEBUG, stdout
# Hibernate logging options (INFO only shows startup messages)
log4j.logger.org.hibernate=DEBUG
# Log JDBC bind parameter runtime arguments
log4j.logger.org.hibernate.type=DEBUG
log4j.logger.org.hibernate.persister.entity=DEBUG
log4j.logger.org.hibernate.SQL=DEBUG
通過這些設置,我可以看到SQL得到印在控制檯當我保存/更新我的實體。
但我沒有看到的是啓動日誌(我在頂部提到)。 Hibernate確實生成了SQL,但不是在應用程序開始時,它只在我開始處理實體時才發生。
這裏有什麼問題?
究竟是什麼問題?你看到'org.hibernate.persister.entity'記錄器的輸出嗎? – axtavt 2011-05-04 08:57:01
@axtavt - 啓動時不會出現該類的日誌。 – Vicky 2011-05-06 16:37:57