2015-05-13 3 views
3

Как настроить FlushMode.ALWAYS для всех сеансов в приложении Spring Boot? Было бы неплохо иметь эту настройку в application.yml.Как настроить org.hibernate.org.hibernate.FlushMode для приложения Spring Boot?

UPDATE

Я попытался с обоими в application.yml:

spring.jpa.properties.org.hibernate.flushMode: ALWAYS 
spring.jpa.org.hibernate.flushMode: ALWAYS 

Однако следующий код:

Session ses = factory.openSession(); 
    ses.setFlushMode(FlushMode.ALWAYS); 
    LOG.debug("!!!Session.FlushMode = " + ses.getFlushMode()); 
    LOG.debug("!!!NewSession.FlushMode = " + factory.openSession().getFlushMode()); 

дает:

DEBUG 47225 ---  : !!!Session.FlushMode = ALWAYS 
DEBUG 47225 ---  : !!!NewSession.FlushMode = AUTO 
+0

Вы можете попробовать добавить следующее spring.jpa.org.hibernate.flushMode = ВСЕГДА (конечно, в формате YML). –

ответ

1

Вам необходимо добавить следующее свойство:

spring.jpa.properties.org.hibernate.flushMode=ALWAYS 
+0

Не работает для меня. Я по-прежнему получаю исключение в моем методе 'AccountRepository extends JpaRepository'' save', когда я хочу сохранить новые строки, которые имеют внешние ключи для моей учетной записи. 'saveAndFlush' отлично работает. – Loco

+1

Вы спросили о том, как установить режим очистки. Исключением может быть что-то другое. Чтобы убедиться, что установлен флажок, проверьте метод 'session.getFlushMode()'. –

+1

@ Loco. Вопрос был в том, как установить то конкретное свойство, на которое этот ответ на самом деле отвечает. Однако, видимо, вы хотели задать другой вопрос. –

Смежные вопросы