2014-07-19 96 views
0

我已经映射类路径:com.me.model.User。和用户DAO com.me.daoImpl.UserDaoImpl休眠需要查询映射类的完整路径

的道看起来是这样的:

package com.me.daoImpl; 

//other imports 
import com.me.model.User; 

@Repository 
public class UserDaoImpl implements UserDao { 

    @Autowired 
    SessionFactory sessionFactory; 

    //other methods... 

    @SuppressWarnings("unchecked") 
    public List<User> getAllUsers() { 
     Session session = sessionFactory.openSession(); 
     try { 
      return session.createQuery("from com.lime.model.User").list(); 
     } finally { 
      session.close(); 
     } 
    } 

} 

我的问题是,如何让Hibernate来了解modelcobject类?如上所示,我为用户导入,但我必须在createQuery()方法中给出完整路径。这说明错误:无法解析符号User

return session.createQuery("from User").list(); 
+0

您是否在spring配置文件中定义了bean?向我们显示错误堆栈跟踪。 –

+0

我没有得到异常,上面的代码工作,但只需要完整路径,它总是写满整个路径的烦人 – Pink

回答

0

可以映射Hibernate的配置文件中的类和包像

<hibernate-configuration> 
    <session-factory> 
     <mapping class="com.me.model.User" /> 

使用Spring使用此配置这个属性添加到会话工厂bean

<property name="configLocation" value="classpath:hibernate.cfg.xml"/> 

hibernate.cfg.xml应该在classpath上。

+0

我已经有映射,这是工作,但它只是需要完整路径(与com。我...)在查询 – Pink

+0

这是基于注释的午睡,你应该在类上使用注释,我不知道你使用的是哪个版本的hibernate,因为它需要基于注解的配置。 –

+0

嗯......我已经通过spring作为bean sessionFactory在属性annotatedClasses中进行了映射,这就是为什么它需要完整路径,但我添加了hibernate.cfg.xml,因为你伤心,现在这是我想要的,但现在有一个问题什么cfg用于会话工厂,春季或休眠?因为我听说用spring配置会更好。 – Pink