|
|
|
Вопрос про организацию кэша
|
|||
|---|---|---|---|
|
#18+
Есть желание помещать в кэш значения с уровня сервисов (Spring, ehcache). Допусти есть метод getMyObject(int objectId), на уровне DAO идет запрос в БД с 3-4 left join. Например: class MyObject { ... @OneToMany Set<OneObject> Set<TwoObject> Set<ThreeObject> } Причем эти сеты разумеется могут меняться. Как лучше это поместить в кэш? Я вижу два варианта. 1. При изменении объекта MyObject или при изменениях в любом из сетов сбрасывать весь кэш для конкретного объекта MyObject @CacheEvict(... key="#myObject.uniqId") 2. Убрать в DAO left join и все сеты получать отдельно, т.е. их можно будет независимо кэшировать и при изменение одного из них сбрасывать из кэша только его. Подскажите как в таких случаях поступают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2012, 10:36:38 |
|
||
|
Вопрос про организацию кэша
|
|||
|---|---|---|---|
|
#18+
Кэш второго уровня в JPA/Hibernate включить не пробовали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2012, 10:40:04 |
|
||
|
Вопрос про организацию кэша
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, пробывал, просто не вижу особого смысла в нем. У меня почти все затратные операции идут на уровне сервисов, а не на уровне JPA. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2012, 10:41:07 |
|
||
|
Вопрос про организацию кэша
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, в таком примере как обычно делают? Другими словами как правильно) Допустим в одном из Set добавилось одно значение, что теперь весь объект заново кэшировать (остальные Set'ы и свойства объекта не изменились)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2012, 10:43:25 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37865568&tid=2131425]: |
0ms |
get settings: |
11ms |
get forum list: |
21ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
59ms |
get topic data: |
15ms |
get forum data: |
4ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 310ms |
| total: | 489ms |

| 0 / 0 |
