Я пытаюсь использовать JBossCache в качестве провайдера кэш-памяти второго уровня JPA / Hibernate для кеширования неоднократно вызываемых запросов. Запросы возвращают сущности определенного типа, назовем их FooType.
FooType выглядит следующим образом:
@Entity(name = FooType)
@Cache(usage = CacheConcurrencyStrategy.TRANSACTIONAL)
public class FooType {
protected BarType barType;
@ManyToOne(targetEntity = BarType.class, cascade = {
CascadeType.ALL
})
BarType getBarType() {
return barType;
}
}
Итак, у Footype есть связь «многие-к-одному». Теперь, когда я вызываю запрос, кажется, что в кеш помещается только очень маленькая часть. Я думаю, что причина в том, что я не пометил ассоциацию с тегом @Cache. Я прав?
Но настоящий вопрос:
BarType также имеет несколько ассоциаций, и они возвращают объекты, которые также предоставляют ассоциации и т. Д., Создавая большой граф ассоциаций. Теперь мне нужно
а) комментирует все эти классы и
b) также комментируют ассоциации
для того, чтобы весь запрос был кэширован?