JPA与hibernate提供程序的多对多提取模式

时间:2014-11-13 18:51:14

标签: java hibernate jpa

我有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缓存中获取相关的可缓存实体?

0 个答案:

没有答案