У нас есть функция saveOrUpdate(Object)
в Hibernate, в то время как мы используем Session, и это проще, поскольку нам не нужно проверять, следует ли выполнять сохранение или обновление. но функции insert(Object)
и update(Object)
доступны только для сеанса без сохранения состояния, и мне нужно использовать сеанс без сохранения состояния, поскольку я иду с сотнями тысяч записей, а спящий режим сжигает память. Есть ли способ воспроизвести функциональность saveOrUpdate(Object)
в сеансе бездействия. или в любом случае, используя Hql-запрос вместо использования объекта, чтобы сделать это через спящий режим.Запрос Hql, аналогичный SaveOrUpdate в спящем режиме
ответ
Согласно StatelessSession JavaDoc
без гражданства сессии не реализует кэш первого уровня, ни взаимодействовать с любым кэшем второго уровня, а также не осуществлять транзакционной записи за или автоматическую грязную проверку, а также операции каскада для связанных экземпляров. Коллекции игнорируются сеансом без сохранения. Операции, выполненные через сеанс без состояния обходной модели Hibernate и перехватчиков. Лица без сессий уязвимы к искажениям данных эффектов, из-за отсутствия кэш первого уровня
Он не поддерживает кэш первого уровня, следовательно, не знает текущее состояние объекта (Transient, Постоянный, Отдельный или Удаленный), следовательно, он не может принять сознательное решение. Вы можете запросить использование HQL, чтобы определить, существует ли та же самая запись в базе данных или нет, и вызвать соответствующий метод до insert()
или update()
. Но это дорого.
Если есть рекорды lakh для обновления или вставки, было бы лучше использовать базовый JDBC, а не спящий режим. Это решит вашу проблему с памятью.
- 1. SaveOrUpdate в спящем режиме работает неожиданно
- 2. hql - как выбрать условный запрос в спящем режиме
- 3. выберите запрос в спящем режиме, где статья
- 4. saveOrupdate работает во второй попытке в спящем режиме не сначала
- 5. ColumnTransformer в спящем режиме
- 6. Как выполнить запрос соединения в спящем режиме?
- 7. Группировка в спящем режиме
- 8. присоединяется в спящем режиме
- 9. ошибка в спящем режиме?
- 10. Как выбрать индексный столб в спящем режиме?
- 11. Запрос поиска с использованием логики AND в спящем режиме
- 12. написания SQL-запрос в спящем режиме
- 13. Как написать следующий запрос в спящем режиме
- 14. Как реализовать этот запрос в спящем режиме?
- 15. Множественный вложенный запрос выбора в спящем режиме
- 16. Как создать запрос критериев в спящем режиме?
- 17. Условный SQL-запрос в спящем режиме
- 18. Ошибка в спящем режиме по имени запрос
- 19. Запрос на существование поля в спящем режиме
- 20. Порядок соединения в спящем режиме
- 21. Диалект в спящем режиме
- 22. Вставить в таблицу diff, используя один запрос HQL в спящем режиме?
- 23. Как написать запрос с функциями agregate в спящем режиме?
- 24. автообъединения в спящем режиме
- 25. Запрос с использованием общего числа в спящем режиме
- 26. Как использовать Содержит в спящем режиме
- 27. проблема с перекрестным соединением в спящем режиме
- 28. удалить объект из сеанса в спящем режиме?
- 29. Явное обновление требуется в спящем режиме?
- 30. Порядок заказа не работает в спящем режиме
Спасибо за ответ. Я пытался найти способ сделать это через спящий режим, не производя память. в то время как я попытался использовать сеанс без сохранения состояния, я мог бы контролировать использование памяти. – Saif