我将应用程序配置为显示sql查询:
@Configuration
@ComponentScan("com.ambre.pta")
@EnableTransactionManagement
@PropertySources({
@PropertySource("classpath:jdbc.properties"),
@PropertySource("classpath:fr/global.properties"),
@PropertySource("classpath:fr/main.properties"),
@PropertySource("classpath:fr/admin.properties")
})
public class ApplicationContextConfig {
...
@Autowired
@Bean(name = "sessionFactory")
public SessionFactory getSessionFactory(DataSource dataSource) {
LocalSessionFactoryBuilder sessionBuilder = new LocalSessionFactoryBuilder(dataSource);
sessionBuilder.scanPackages("com.ambre.pta.model");
sessionBuilder.setProperty("hibernate.show_sql", "true");
sessionBuilder.setProperty("hibernate.dialect", "org.hibernate.dialect.Oracle10gDialect");
return sessionBuilder.buildSessionFactory();
}
...
}
但是在运行时,查询中涉及的实际值未显示,而只有?
符号!那么如何启用实际值的显示?
答案 0 :(得分:0)
您必须将类别org.hibernate.SQL
的记录器设置为调试,并将org.hibernate.type
设置为跟踪。
E.g。如果使用log4j,请在配置中添加以下两行:
# SQL statements and parameters
log4j.logger.org.hibernate.SQL=debug
log4j.logger.org.hibernate.type.descriptor.sql=trace