Ответ 1
Попробуйте установить его в persistance.xml
<persistence>
<persistence-unit name="PU">
<properties>
<property name="hibernate.show_sql" value="false"/>
</properties>
</persistence-unit>
</persistence>
Hibernate продолжает извергать SQL-трассировки в stdout, и я не могу понять, как изменить свойство конфигурации Hibernate, когда оно скрыто за адаптером JPA. Это Spring bean для entityManagerFactory:
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="ssapDataSource"/>
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" >
<property name="showSql" value="false"/>
</bean>
</property>
</bean>
Даже если для свойства showSql установлено значение false, Hibernate сохраняет печать SQL.
Я пробовал сделать файл hibernate.properties в моем пути к классам с помощью "hibernate.show_sql = false", но он тоже не выбрал это.
Попробуйте установить его в persistance.xml
<persistence>
<persistence-unit name="PU">
<properties>
<property name="hibernate.show_sql" value="false"/>
</properties>
</persistence-unit>
</persistence>
<property name="jpaProperties">
<props>
<prop key="hibernate.show_sql">false</prop>
</props>
</property>
это также будет работать
Если вы используете spring, убедитесь, что у свойства showSql нет true
Я делал это сам
<bean id="vendorAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="showSql" value="false"/>
</bean>
Насколько мне известно, Hibernate также регистрирует операторы SQL, если ведение журнала для org.hibernate.SQL
происходит на уровне DEBUG
или ALL
, поэтому вы можете попробовать отключить его (например, с помощью log4j.logger.org.hibernate.SQL=info
при использовании Log4J).
добавьте это в свой файл log4j.properties
log4j.logger.org.hibernate = WARN
Это сработало для меня:
spring.jpa.show-sql=false
Вот три способа (они, вероятно, другие), чтобы показать или скрыть запросы на спящий режим sql:
В конфигурации logger (уровень DEBUG для журнала):
<logger name="org.hibernate.SQL" level="DEBUG" />
В Spring config (например, в java config):
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
final LocalContainerEntityManagerFactoryBean lef = new LocalContainerEntityManagerFactoryBean();
//...
final Properties jpaProperties = new Properties(); // java.util
//TODO replace "true" by a variable
jpaProperties.setProperty("hibernate.show_sql", "true");
lef.setJpaProperties(jpaProperties);
return lef;
}
В файле persistence.xml
<property name="hibernate.show_sql" value="true" />
Кажется, что конфигурация регистратора не зависит от конфигурации сохранения. Что касается конфигурации сохранения, похоже, что Spring переопределяет persistence.xml(я тестировал его с помощью файла persistence.xml, загруженного spring, если это не так, я не знаю, каково будет поведение).
Разница между двумя конфигурациями - это запись результатов, с логином она будет выглядеть так:
2016-08-25 16:05:39,436 DEBUG org.hibernate.SQL(92) - alter table ...
С конфигурацией сохранения:
Hibernate: alter table ...