ehcache——hibernate多对多关联无法从缓存加载?

ehcache——hibernate多对多关联无法从缓存加载?,hibernate,ehcache,Hibernate,Ehcache,我有两个实体 A和B,在多对多关系中相关 我将两者都设置为延迟加载,因为在大多数情况下,我只需要A,而不需要关联的B 我启用了ehcache。在少数情况下,我的代码会执行 A a = instance_of_ADao.getA(); for(B b : a.getBs() ) { /// } 第一个调用getA从缓存中查找,但第二个调用getBs没有, 而是生成一个查询: SELECT * from A_B LEFT OUTER JOIN B on A_B.B_ID = B.B_ID WHE

我有两个实体

A和B,在多对多关系中相关

我将两者都设置为延迟加载,因为在大多数情况下,我只需要A,而不需要关联的B

我启用了ehcache。在少数情况下,我的代码会执行

A a = instance_of_ADao.getA();

for(B b : a.getBs() ) {
///
}
第一个调用getA从缓存中查找,但第二个调用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的映射中的A,所以我不能定义它来使用缓存

那么,有没有一种方法可以在调用a.getBs时使用缓存

谢谢
Yang

您需要将关联本身配置为缓存。如果您使用的是注释,则可以在A中的Bs集合上添加@Cache注释