Заставить JSF ждать базу данных - PullRequest
0 голосов
/ 09 января 2012

У меня есть страница JSF для отправки значений формы в базу данных.При нажатии кнопки значения отправляются в мой ManagedBeans и записываются в базу данных через JPA.Затем обновленные значения из базы данных должны отображаться в dataTable на той же странице.

Проблема в том, что база данных слишком медленная, поэтому JSF отображает страницу раньше, чем они есть в базе данных (таким образом, толькорендеринг старых уже есть).Как я могу заставить JSF ждать, пока база данных завершит запись значений?Я могу понять, как получить текущую фазу жизненного цикла, но не как ее остановить ...

1 Ответ

1 голос
/ 09 января 2012

Проблема в том, что база данных слишком медленная, поэтому JSF, по-видимому, отображает страницу раньше, чем она есть в базе данных (таким образом, отображаются только старые, уже существующие). Как я могу заставить JSF дождаться, пока база данных завершит запись значений?

Это, честно говоря, не имеет смысла. JSF просто выполняет ту работу, о которой вы сказали, в методе действия компонента. Очевидно, вы не перезагружаете список из БД после сохранения. Возможно, вы имеете в виду, что обновленный элемент виден только при обновлении страницы, так что запускается новый запрос GET, который перезагружает данные из БД.

Канонический подход - просто перезагрузить данные из БД сразу после сохранения.

public void save() {
    someService.save(some); // Save item in DB.
    list = someService.list(); // Reload list from DB.
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...