
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
26.04.2006, 23:34
|
|||
|---|---|---|---|
Кэш hibernate |
|||
|
#18+
Я прочитал документацию по hibernate об кэшировании данных http://www.hibernate.org/hib_docs/v3/reference/en/html/performance.html#performance-cache Немного поэксперементировал с EHCache. Как я понял hibernate перед тем как записать.прочитать данные может хранить их только в кэше первого или второго уровня. Кэш первого уровня может хранить данные только внутри одной транзакции, а кэш второго уровня может спокой использоваться для хранения достаточно большого объема данных между транзакциями. Возникает вопрос как можно отследить запись в кэш? То бишь, если у меня будет скажем извлекаться из базы данных в одно и то же время объект А, то как определить, что hibernate будет использовать кэш, а не полезет повторно в базу данных? B=объект А (извлекаем из базы данных и записываем в кэш) C=объект А (извлекаем уже прямо из кэша) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.04.2006, 23:50
|
|||
|---|---|---|---|
Кэш hibernate |
|||
|
#18+
Я считаю, что существует какой-то временный id при помощи которого hibernate получает доступ к объектам находящимся в cache. Можно как-нибудь этот id получить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.04.2006, 11:53
|
|||
|---|---|---|---|
|
|||
Кэш hibernate |
|||
|
#18+
У SessionFactory и Session есть методы проверки присутсвует ли указаный объект в кэше 1 и 2го уровней соответсвенно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.04.2006, 16:34
|
|||
|---|---|---|---|
|
|||
Кэш hibernate |
|||
|
#18+
Я так понял это Statistics, но ведь с помощью этого нельзя вытащить объект из кэша. Может все-таки есть метод с помощью, которого можно взять объект из cache? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.04.2006, 17:22
|
|||
|---|---|---|---|
|
|||
Кэш hibernate |
|||
|
#18+
А зачем? Hibernate сам его использует, а пользователю оставляет средства мониторинга и такие вещи как evict (т.е. убрать из кеша) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.04.2006, 08:24
|
|||
|---|---|---|---|
|
|||
Кэш hibernate |
|||
|
#18+
По-моему, Вам не стоит заботиться о том, откуда берет Hibernate конкретный объект. Если у Вас все сконфигурировано нормально (и спользование кэша включено для класса), то при первом обращении к объекту (если в кэше его нет) объект будет загружен из базы данных, а при последующих обращениях извлекаться из кэша. Чтобы принудительно загрузить объект из базы данных нужно, как было отмечено ранее в этой ветке, удалить объект из кэша при помощи evict(). В общем Hibernate делает всю работу за Вас и отслеживать, откуда был взят конкретный экземпляр (из кэша или базы данных) объекта, по-моему не стоит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=59&tablet=1&tid=2149431]: |
0ms |
get settings: |
11ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
184ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 239ms |
| total: | 514ms |

| 0 / 0 |
