2012-01-13 4 views
0

У меня есть таблицы-мастера-ребенка. Пользователь может добавлять/удалять дочерние элементы после выбора основного элемента/объекта. Когда индекс выбора списка основных элементов изменяется, я заполняю дочернюю таблицу/arraylist дочерними элементами этого выбранного основного элемента из БД. Я открыл диспетчер объектов, начал транзакцию, сохранял или удалял дочерние сущности/элементы, когда пользователь щелкает дочерние кнопки добавления/удаления соответственно. Моя проблема заключается в том, чтобы отслеживать новые и удаленные дочерние объекты, в то время как пользователь выбирает другой главный элемент. Поскольку я очищаю дочернюю таблицу/Arraylist (но не очищаю контекст постоянства), прежде чем заполнять ее дочерними объектами нового выбранного основного элемента. Я хочу отразить новые/удаленные, а не зафиксированные дочерние элементы, когда пользователь снова выбирает предыдущий главный элемент. Надежда правильно объяснила мою проблему. Использование спящего режима над JPA. Благодарю.Как получить объекты JPA сохраняются/удаляются, но не фиксируются?

ответ

0

Ну, просто выполните запрос, чтобы получить все дочерние объекты выбранного мастера. Даже если транзакция еще не выполнена, транзакция видит их в базе данных, так как она их сохранила.

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

+0

Я также ожидал этого. Странный. Вчера он работал не так, как ожидалось, сегодня. Спасибо, в любом случае. Проект, над которым я работаю, является программой javaFX и запускается на рабочем столе только с небольшим количеством пользователей. Вот почему длительная транзакция. –

0

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

+0

Можете ли вы объяснить и дать несколько ссылок о сеансе и кеше. Вы упоминаете их в контексте jpa? В моем проекте нет веб-сервера или веб-приложения, пулов подключений и веб-интерфейса. –

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