ehcache - ассоциации hibernate многие-ко-многим не могут быть загружены из кэша? - PullRequest
0 голосов
/ 21 декабря 2011

У меня есть 2 сущности

A и B, связанные между собой отношением "многие ко многим".

Я установил обе функции как ленивую нагрузку, потому что в большинстве случаев мне нужен только A,не связанный B.

Я включил ehcache.в некоторых случаях мой код выполняет

A a = instance_of_ADao.getA();

for(B b : a.getBs() ) {
///
}

, первый вызов getA () выполняет поиск A из кэша, а второй вызов (getBs ()) - нет, а вместо этого генерирует запрос:

SELECT * from A_B LEFT OUTER JOIN B on A_B.B_ID = B.B_ID WHERE A_B.A_ID = .....;

после этого выбора он сохраняет объект B. в кеше.

Я думаю, причина в том, что запрос во втором вызове действительно вытягивает A_B, но у меня нет сопоставления дляA_B (это просто отображение А), поэтому я не могу определить это для использования кэша.

, поэтому есть ли способ использовать кеш при вызове A.getBs ()?

Спасибо Ян

1 Ответ

0 голосов
/ 21 декабря 2011

Вам необходимо настроить саму ассоциацию для кэширования. Если вы используете аннотации, вы можете добавить аннотацию @Cache в коллекцию Bs в A.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...