我有2个JPA实体用户和课程:
@Entity
public class User {
@Id
@GeneratedValue
private Integer id;
@ManyToMany
@JoinTable(name="UserCourse")
private Set<Course> courses;
// getters and setters
}
@Entity
@Cacheable
public class Course {
@Id
@GeneratedValue
private Integer id;
// getters and setters
}
课程可以缓存。 hibernate.max_fetch_depth设置为0。
我需要的是当我遍历用户的课程时,hibernate应该触发一个简单的SELECT查询来从join-table UserCourse中获取课程并从L2缓存加载Course实体。 但相反,hibernate似乎总是在UserCourse和Course之间触发连接查询。
所以问题是 -
在ManyToMany关联的情况下,有没有办法强制hibernate在join-table上触发一个简单的非连接SELECT并从L2缓存中获取相关的可缓存实体?