2012-02-22 75 views
0

上創建的標準功能打印問號我寫休眠個createCriteria功能在我的項目是這樣休眠控制檯

Hibernatesession.createCriteria(Salesman.class).add(Restrictions.ilike("email", email)).list(); 

電子郵件這裏是一個變量,而我在DAO頁面得到這個正確。 但在控制檯這裏得到的查詢是

select this_.id as id28_0_, this_.city_id as city2_28_0_, this_.state_id as state3_28_0_, this_.firstname as firstname28_0_, this_.lastname as lastname28_0_, this_.address as address28_0_, this_.zip as zip28_0_, this_.phone as phone28_0_, this_.suit as suit28_0_, this_.username as username28_0_, this_.password as password28_0_, this_.email as email28_0_, this_.status as status28_0_, this_.created_at as created14_28_0_ from test_mydrdirect.salesman this_ where lower(this_.email) like ? 

它instaed應該在控制檯打印這樣

select this_.id as id28_0_, this_.city_id as city2_28_0_, this_.state_id as state3_28_0_, this_.firstname as firstname28_0_, this_.lastname as lastname28_0_, this_.address as address28_0_, this_.zip as zip28_0_, this_.phone as phone28_0_, this_.suit as suit28_0_, this_.username as username28_0_, this_.password as password28_0_, this_.email as email28_0_, this_.status as status28_0_, this_.created_at as created14_28_0_ from test_mydrdirect.salesman this_ where lower(this_.email) like '[email protected]' 

,而不是[email protected]休眠打印只是一個「?」在控制檯。有人知道爲什麼這個打印是這樣的。

+0

這是因爲hibernate使用準備好的語句 – 2012-02-22 13:57:43

回答

1

這些查詢被視爲準備好的語句,並且只有在查詢得到執行時參數才綁定到值上。但是,您仍然可以按照以下方式記錄它們。

如果您想要詳細記錄hibernate查詢,您需要使用以下日誌記錄機制,如文章here中所述。

添加下面你log4.properties文件,

# Direct log messages to a log file 
log4j.appender.file=org.apache.log4j.RollingFileAppender 
log4j.appender.file.File=C:\\mkyongapp.log 
log4j.appender.file.MaxFileSize=1MB 
log4j.appender.file.MaxBackupIndex=1 
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n 

# 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=INFO, file, stdout 

# Log everything. Good for troubleshooting 
log4j.logger.org.hibernate=INFO 

# Log all JDBC parameters 
log4j.logger.org.hibernate.type=ALL 

這裏是相同的另一個example

+0

它的工作原理。謝謝 – user359187 2012-02-22 15:08:27