Hibernate启用FetchProfile - >未知

时间:2012-04-06 19:05:38

标签: java hibernate spring-mvc hibernate-annotations

我想在实体示例中使用带有DAO的FetchProfile。

这是我的实体的注释:

@FetchProfiles({ @FetchProfile(name = "example-profile", fetchOverrides = {
    @FetchProfile.FetchOverride(entity = Example.class, association = "association1", mode = FetchMode.JOIN),
    @FetchProfile.FetchOverride(entity = Example.class, association = "association2", mode = FetchMode.JOIN) }) 
})

这是我的DAO:

    @Autowired
private SessionFactory sessionFactory;

public Example getExample(Long id) {
    sessionFactory.getCurrentSession().enableFetchProfile("example-profile");
    return (Example) sessionFactory.getCurrentSession().get(Example.class, id);
}

当我调用getExample时,我遇到了这个异常:

  

org.hibernate.UnknownProfileException:Unknow fetch profile [example-profile]

我是否缺少地图或其他内容?

2 个答案:

答案 0 :(得分:0)

请确保SessionFactory加载具有此类 @FetchProfiles 的实体。

答案 1 :(得分:0)

@Autowired
private SessionFactory sessionFactory;

public Example getExample(Long id) {

    Session session = sessionFactory.getCurrentSession();
    session.enableFetchProfile("example-profile");

    sessionFactory.getCurrentSession().enableFetchProfile("example-profile");
    return (Example) sessionFactory.getCurrentSession().get(Example.class, id);
}