2009-11-03 70 views
0

我使用Hibernate標註,當我做下面一切正常問題,在Hibernate配置文件映射標籤

sessionFactory = new AnnotationConfiguration() 
           .addPackage("istreamcloudframework.objectmodel.member") 
           .addAnnotatedClass(User.class) 
    .buildSessionFactory();

,但我想避免這種方式指定的所有類,所以我嘗試採取任何進入休眠以下列方式配置文件,


    mapping package="istreamcloudframework.objectmodel.member" 
    mapping class="istreamcloudframework.objectmodel.member.User" 

我獲得以下錯誤,


org.hibernate.MappingException: Unknown entity: istreamcloudframework.objectmodel.member.User 

這裏有什麼問題?

P.S:我檢查了所有的註解導入,而沒有檢查org.hibernate.annotations.Entity。我正在使用javax.persistence。進口; *

回答

1

您必須使用AnnotationConfiguration實例來處理包含您的配置的XML文件,但您應該能夠在其中指定您的類。有關更多詳細信息,請參見Hibernate Annotations documentation

<!DOCTYPE hibernate-configuration PUBLIC 
"-//Hibernate/Hibernate Configuration DTD 3.0//EN" 
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 

<hibernate-configuration> 
    <session-factory> 
    <mapping package="istreamcloudframework.objectmodel.member" /> 
    <mapping class="istreamcloudframework.objectmodel.member.User" /> 
    </session-factory> 
</hibernate-configuration> 

創建會話工廠:

SessionFactory sessionFactory = new AnnotationConfiguration() 
.configure().buildSessionFactory(); 

另外請注意,這不是必要的地圖包(這樣做不會映射說,包中的類),除非你有包級別的註解。

+0

嗯.... NetBeans的清潔和建設使它的工作。我很好奇爲什麼NetBeans的行爲如此,謝謝反正...... – Chetan 2009-11-03 20:51:21