2014-07-19 38 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