Если я сохраняю объект с использованием сеанса Hibernate и затем проверяю, чтобы получить этот объект из текущего сеанса в самой следующей строке (т. Е. Без изменений, которые были записаны в DB еще), будет возвращен сеанс объект? Я предполагаю, что это должно, потому что оно также знает, какие изменения были внесены в него.Попытка понять сеансы Hibernate
0
A
ответ
0
Да, представление объектов, которые были сохранены, и загружаемых/запросов должно быть последовательным. Иногда запрос вызывает сброс всех выдающихся изменений в базу данных перед выполнением запроса, чтобы обеспечить эту согласованность (при условии, что сеанс установлен в режим автопотока по умолчанию).
Далее, в этом случае сессия должна вернуть тот же самый объект, который вы сохранили, а не копию, относящуюся к той же строке в базе данных.
0
Это должно быть, но вы должны быть осторожны при реализации равенства и хэш-кода. Сессия - это просто большой хэш-файл с объектами, связанными с идентификатором объекта. Поэтому, если вы попытаетесь получить объект по ID, вы получите тот же объект.
Смежные вопросы
- 1. Невозможно понять сеансы в Rails
- 2. Hibernate вложенные транзакции/сеансы и ассоциации прокси
- 3. Попытка понять password_verify PHP
- 4. Попытка понять FFT
- 5. Попытка лучше понять указатели
- 6. Попытка понять задачи Android
- 7. Попытка понять границы слова
- 8. Попытка понять парадигму React
- 9. Попытка понять смысл RNCryptor
- 10. Попытка понять статические конструкторы
- 11. Попытка понять переводчик rövarspråket
- 12. Попытка понять одноклассный SVM
- 13. Попытка понять сортировку оболочки
- 14. Попытка понять функцию
- 15. Попытка понять MockSequence
- 16. Попытка понять петлю полностью
- 17. Попытка понять полезность assert
- 18. Попытка понять "LibrarySort"?
- 19. Попытка понять поведение array_uintersect
- 20. Kivy - Попытка понять Clock.schedule_interval
- 21. Попытка понять auto_ptr
- 22. Попытка понять конечные переменные
- 23. Попытка понять иерархию просмотров
- 24. Попытка понять goroutines
- 25. Попытка понять FQDN
- 26. Попытка понять наследование JavaScript
- 27. Попытка понять простую инструкцию
- 28. Попытка понять JQuery appendTO
- 29. Попытка понять поведение super()
- 30. Попытка понять отправку
но он возвращает значение null в тесте JUnit, который простирается от AbstractAnnotationAwareTransactionalTests и помечен как транзакционный – preslavrachev
как вы «исследуете» для объекта? используя запрос? сделал сеанс автофвола перед ним? делает ли вызов session.flush() перед запросом? – araqnid
Я просто сохраняю, flush, а затем попытаюсь схватить его из сеанса на следующей строке ... и он возвращает null, хотя я вижу, что INSERT SQL отправляется в БД. Может быть, тест отмечен как @Transactional? – preslavrachev