
Wystan
17.05.2018
11:51:49
господа а как присоеднить редис кэщ к хибернейту? Чтобы в джейсоны сериализовать и не падать в обморк от proxy objects если в энтити какие-то joinы указаны?

Митко Соловец?
17.05.2018
11:52:33
используй апач игнат или хэзелкаст
как кэш L2

Wystan
17.05.2018
11:53:01
чо за кэш l2 если у меня несколько инстансев аппликухи

Google

Sergey
17.05.2018
11:53:10
хазелкаст тогда

Митко Соловец?
17.05.2018
11:53:21
так же напомню, сериализовать весь граф у сущности - плохая идея и редко когда так требуется, на уровне бизнес-логики обычно управляют как и что маппить

Sergey
17.05.2018
11:53:25
это дистрибьютед кэш и хибернейт с ним дружит

Митко Соловец?
17.05.2018
11:53:28
интеграция из коробки

Wystan
17.05.2018
11:54:03
я пишу вот так перед jpa методом`@CacheEvict(keyGenerator = "findAllByStatusInForCollectionListKeyGenerator" )`, он делает джава - сериализацию, и прокси объекты я и не трогаю когда достаю из кэша

Паша
17.05.2018
11:54:05
плюсану что HZ работает, делали так.
В вопросе непонятно, причем тут JSON

Митко Соловец?
17.05.2018
11:54:09
еще можно для поисков сделать построение документов из нормализированной схемы бд и запихивать в эластик
и искать по нему

Wystan
17.05.2018
11:54:17
Мне бы просто чтобы то же решение, но прокси в нуллы сериалидовать

Митко Соловец?
17.05.2018
11:54:27
это будет совсем быстро

Паша
17.05.2018
11:54:29

Митко Соловец?
17.05.2018
11:54:39

Google

Wystan
17.05.2018
11:54:40

Паша
17.05.2018
11:54:58
Ох, кмон. Это тебе не надо

Митко Соловец?
17.05.2018
11:55:00
https://ignite.apache.org/use-cases/caching/hibernate-l2-cache.html

Wystan
17.05.2018
11:55:02
Но этот спринговый кэш использует редис

Sergey
17.05.2018
11:55:16
а что тебе мешает сделать не редис?

Паша
17.05.2018
11:55:18
У него много реализаций доступных под капотом

Sergey
17.05.2018
11:55:25
а что нибудь дистрибьютед

Wystan
17.05.2018
11:55:33
Я понял, что есть игнит и хазелкаст. Но у меня уже есть редис, не хочу что-то еще добавлять в проект

Митко Соловец?
17.05.2018
11:56:39
271 звезда - слабовато
чистый кастом

Wystan
17.05.2018
11:56:57
да смущает количество звездочек

Митко Соловец?
17.05.2018
11:56:57
официально редис и хибер не дружат
а то что ты скинул - это похоже на кэш запросов, не более
query cache
не L2 cache

Alexander
17.05.2018
11:57:20

Alexander
17.05.2018
11:57:26
да на джаве у проектов вообще мало звездочек. только те что под андроид или прямо офигеть какая полезная либа.

Alexander
17.05.2018
11:57:26
а - архитектура

Wystan
17.05.2018
11:57:34
Да, мне нужны только запросы. Ну и иногда их обнулять, если редко что-то меняется

Google

Alexander
17.05.2018
11:58:32
игнат всем нужен, не придумывай
дал бог базу - даст и хазелькаст

Митко Соловец?
17.05.2018
11:58:46
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-caching.html
31.1 Supported Cache Providers 7 пункт

guga
17.05.2018
11:59:06

Alexander
17.05.2018
11:59:24
не вижу проблем накрутить еще и игната на нее

Митко Соловец?
17.05.2018
11:59:25
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-caching.html#boot-features-caching-provider-redis

Alexander
17.05.2018
11:59:31
и кэширование в редисе

Sergey
17.05.2018
11:59:42

Митко Соловец?
17.05.2018
11:59:58
да 1 ссылка в гугле

Mikhail
17.05.2018
12:00:15

Митко Соловец?
17.05.2018
12:00:19
чисто без игнатов и хазелов

Wystan
17.05.2018
12:00:50

guga
17.05.2018
12:01:01

Митко Соловец?
17.05.2018
12:01:07
какими джэйсонами, где?

Wystan
17.05.2018
12:01:45
у тебя есть fooRepository{ @Cached Collection<Foo> getAll() }
Вот эта коллекция хранится в редисе как джава - сериализованные объекты.
Хочется, чего-то более читабельного, поэтому и спросил.

Митко Соловец?
17.05.2018
12:02:31
те лэзи поля не хранятся

Google

Митко Соловец?
17.05.2018
12:02:35
ты это имеешь в виду?

Wystan
17.05.2018
12:02:41
Да

Митко Соловец?
17.05.2018
12:02:48
так потому что это не кэш 2 уровня
а просто кэш запросов

Wystan
17.05.2018
12:03:11
Они хранятся как прокси обджекты и это нормально. Но если ты делаешь сериализацию в джейсон руками, то прокси пыатеся достать объекты, что неприятно.

Митко Соловец?
17.05.2018
12:03:12
поэтом тебе предложили 3 варианта - игнат, хэзел и поделка с гитхаба для редиски
выбирай

Wystan
17.05.2018
12:03:28
Но если я хочу оставить просто кэш запросов?

Митко Соловец?
17.05.2018
12:03:43
оставляй
я уже не пойму чего ты хочешь
с тобой тяжело

Wystan
17.05.2018
12:04:09
Я в начале неправильно сформулировал, я потом уточнил, что использую cache evict. Прошу прощения за неточность.
Вопрос, есть ли кеш запросов на редисе с json сериализацией?

Митко Соловец?
17.05.2018
12:06:07
в dto сначала сущности кладешь?
я с трудом понял, что ты хочешь

Паша
17.05.2018
12:07:07

Митко Соловец?
17.05.2018
12:07:25
тебе просто кэш запросов нужен не на уровне репозитория спринга, а после переливки энтити в дто или твою джэйсонину
по идее на уровне сервисного слоя - слоя БЛ
редис будет хранить уже смапленные джава объекты

Wystan
17.05.2018
12:08:46
А ты соображаешь.

Google

Wystan
17.05.2018
12:09:07
Да это второе решение, просто там надо продублицировать немножко логики со связанными сущностями.
А что, неужели кэши запросов особо не используют? Всем l2 кеша хватает? он же дороже

Sergey
17.05.2018
12:11:26
А кэш запросов хранит весь граф объектов?
С лейзи полями?
Это просто вопрос, мне интересно стало

Wystan
17.05.2018
12:12:09
Нет, он хранит только то, что явно в query было указано

Sergey
17.05.2018
12:12:21
Справедливо
Не хиберовский, а спринговый @кэшабл
На уровне сервисов
М, так то прикольно, подержу пока в голове

Wystan
17.05.2018
12:14:14
Ну, да я перенесу кэш в в api (Controller -> @Cached api -> repository) и продублирую логику.
Мне показалось, что его можно использовать на repository, а потом как-то подружить с hibernate кэшом в будущем, если возникнет необходимость. НО, видимо, не самая удачная мысль

Паша
17.05.2018
12:16:01

Wystan
17.05.2018
12:16:57
Ну, придется обновлять его, да ;(

Митко Соловец?
17.05.2018
12:17:34
но так пожелал человек спрашивающий
я бы сразу L2 кэш внешний юзал

Sergey
17.05.2018
12:18:15
Я бы тоже, хазелькаст с полпинка завелся

Wystan
17.05.2018
12:28:14
Ок, уговорили. Не буду велосипедить.