|
|
|
Hibernate, Subselect + Synchronize. Не отрабатывает Synchronize
|
|||
|---|---|---|---|
|
#18+
всем привет! есть сущности Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. и основная сущность с @Subselect + @Synchronize Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. работа с Item и SubselectItem (у них ключ как видно по запросу одинаковый): 1) достаем в сеансе Item, меняем ему значение поля `name` 2) в этом же сеансе достаем SubselectItem по `Item.id` через em.find() 3) в этом же сеансе достаем SubselectItem по `Item.id` через em.createNamedQuery() Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. в subselectItem = em.find возвращается значение, в котором `name` содержит старое значение, так и должно быть, т.к. hibernate не выполняет автоматическую синхронизацию перед операцией find() в subselectItem2 = em.createNamedQuery возвращается значение, в котором `name` тоже содержит старое значение, но так не должно быть , т.к. hibernate должен выполнять автоматическую синхронизацию перед операцией createQuery/createNamedQuery/createNativeQuery. должен в том случае если таблица Item синхронизирована с SubselectItem я попробовал все варианты в @Synchronize (написаны выше) - по имени таблицы (насколько я понял - надо как раз по имени таблицы) - по имени @Entity - по полному имени класса ни один не отрабатывал как положено есть у кого опыт с @Subselect + @Synchronize, что тут не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2017, 22:56 |
|
||
|
Hibernate, Subselect + Synchronize. Не отрабатывает Synchronize
|
|||
|---|---|---|---|
|
#18+
rmikkiо так не должно быть , т.к. hibernate должен выполнять автоматическую синхронизацию перед операцией Может синхронизация это перезапрос вместо ленивых свойств? Т.е. всё Ок? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2017, 09:31 |
|
||
|
Hibernate, Subselect + Synchronize. Не отрабатывает Synchronize
|
|||
|---|---|---|---|
|
#18+
Petro123rmikkiо так не должно быть , т.к. hibernate должен выполнять автоматическую синхронизацию перед операцией Может синхронизация это перезапрос вместо ленивых свойств? Т.е. всё Ок? Java Persistence API и HibernateОбратите внимание, что Hibernate не выполняет автоматической синхронизации перед операцией find() - только перед выполнением запроса (Query), если это необходимо. Hibernate определит, что модифицированный объект Item повлияет на результат запроса, потому что таблица ITEM синхронизирована с ItemBidSummary. Соответственно, необходимо выполнить синхронизацию изменений и инструкцию UPDATE, чтобы предотвратить возвращение запросом устаревших данных. ItemBidSummary - в моем случае это сущность SubselectItem как я понимаю, так как я обновил item.setName("new_value"), то последующий запрос subselectItem2 = em.createQuery уже должен увидеть новые данные и вернуть обноленное имя (name) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2017, 22:30 |
|
||
|
Hibernate, Subselect + Synchronize. Не отрабатывает Synchronize
|
|||
|---|---|---|---|
|
#18+
Java Persistence API и HibernateСоответственно, моё imho и прочтение этого:авторСоответственно, необходимо выполнить синхронизацию изменений и инструкцию UPDATE, чтобы предотвратить возвращение запросом устаревших данных. в том, что надо самому сбросить на диск изменения (UPDATE). Дай ссылку, где ты это прочитал. Мне лично бы не понравилось, что ОРМ или JPA сам решает где ему сбрасывать и синхронизировать в базу. В хибере API это решаю я сам. авторкак я понимаю, так как я обновил item.setName("new_value"), то последующий запрос subselectItem2 = em.createQuery уже должен увидеть новые данные и вернуть обноленное имя (name) Ещё про коммит не забыть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 00:05 |
|
||
|
Hibernate, Subselect + Synchronize. Не отрабатывает Synchronize
|
|||
|---|---|---|---|
|
#18+
это из книги Бауэр К., Кинг Г., Грегори Г. - JAVA PERSISTENCE API И HIBERNATE Petro123в том, что надо самому сбросить на диск изменения (UPDATE). я пробовал и сам сбрасывать Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Petro123Ещё про коммит не забыть я хочу увидеть данные в той же сессии (сеансе em), а не в новой. в новой все ок, там данные уже обновленные приходят ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 20:14 |
|
||
|
Hibernate, Subselect + Synchronize. Не отрабатывает Synchronize
|
|||
|---|---|---|---|
|
#18+
Petro123Может синхронизация это перезапрос вместо ленивых свойств? Т.е. всё Ок? тут нет ленивых свойств, это не относится к полю SubselectItem.item, а только к полю SubselectItem.name ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 20:21 |
|
||
|
Hibernate, Subselect + Synchronize. Не отрабатывает Synchronize
|
|||
|---|---|---|---|
|
#18+
видимо надо глубже в хибер смотреть. видимо мало кто пользуется этим subselect+synchronize ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 20:21 |
|
||
|
Hibernate, Subselect + Synchronize. Не отрабатывает Synchronize
|
|||
|---|---|---|---|
|
#18+
rmikki, Я смотрю, твоё @Subselect полтора человека использует. Классику один ко многим не хочешь что ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 20:22 |
|
||
|
Hibernate, Subselect + Synchronize. Не отрабатывает Synchronize
|
|||
|---|---|---|---|
|
#18+
rmikkiвидимо надо глубже в хибер смотреть. видимо мало кто пользуется этим subselect+synchronize О...пока писал, и ты уже написал. +1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 20:24 |
|
||
|
Hibernate, Subselect + Synchronize. Не отрабатывает Synchronize
|
|||
|---|---|---|---|
|
#18+
Petro123Я смотрю, твоё @Subselect полтора человека использует. да я тоже смотрю никто почти не использует, а жаль, вроде как смысл от этого subselect вполне есть - готовый маппинг на свою псевдо-сущность. жаль что synchronize не отрабатывает как надо Petro123Классику один ко многим не хочешь что ли? мне это не в проект, а просто для изучения - как и к чему работает. оно же работает, только не на все 100% на прошлом месте работы познакомился (не сам писал, а видел чужой код) с этим subselect. тогда уже удивился что synchronize как-то непонятно был расставлен.. наверно он и тогда не влиял особо спасибо за обсуждение. пусть ру-зоне будет хоть что-то про это :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 22:57 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=56&tid=2122441]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 249ms |
| total: | 390ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...