簡體   English   中英

MappingException.hibernate 映射在不同包中的類失敗

[英]MappingException .hibernate mapping fails for classes in different packages

在使用 hibernate 時,我在兩個不同的包中遇到了這個問題映射類。

我有一個 myapp.domain.ItemforSale class 將被映射到 myapp.cart.CartItem

我創建了 CartItem.hbm.xml 如下

<hibernate-mapping package="myapp.cart">
<class name="CartItem" table="CARTITEM">
    <id name="cartItem_id" column="CARTITEM_ID" type="long">
        <generator class="native"/>
    </id>
    <property name="quantity" type="int" column="QUANTITY" />

    <many-to-one name="itemforsale" class="myapp.domain.ItemforSale" column="ITEM_FORSALE_ID" lazy="false" />
</class> 
...

我有一個從 CartItem 到 ItemForSale 實體的單向映射。在運行將 ItemForSale 實例保存到 db 的測試時。我收到此錯誤

506 [main] INFO org.hibernate.cfg.Configuration - configuring from resource: /hibernate.cfg.xml
506 [main] INFO org.hibernate.cfg.Configuration - Configuration resource: /hibernate.cfg.xml
571 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from resource : myapp/domain/ItemForSale.hbm.xml
636 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: bookshop.domain.ItemForSale ->ITEMFORSALE
...
746 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from resource : myapp/cart/CartItem.hbm.xml
751 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: myapp.cart.CartItem -> CARTITEM
...
org.hibernate.MappingException: Association references unmapped class: myapp.domain.CartItem

我從元素中刪除了 package 屬性,並放置了完全分類的 class 名稱。我仍然得到相同的異常..

<hibernate-mapping>
<class name="myapp.cart.CartItem" table="CARTITEM">
    <id name="cartItem_id" column="CARTITEM_ID" type="long">
        <generator class="native"/>
    </id>
    <property name="quantity" type="int" column="QUANTITY" />

    <many-to-one name="itemforsale" class="myapp.domain.ItemForSale" column="ITEM_FORSALE_ID" lazy="false" />
</class>

作為最后的嘗試,我將 CartItem 移動到 myapp.domain package 並且一切正常!

知道為什么會發生這種情況嗎?在我的應用程序中將 myapp.cart.CartItem 移動到 myapp.domain 是沒有意義的。非常感謝任何幫助。

謝謝

標記

org.hibernate.MappingException: Association references unmapped class: myapp.domain.CartItem

這僅意味着它正在 myapp.domain package 上搜索 CartItem,但您的 class 實際上在 myapp.cart package 中。 所以基本上你顯示的 hibernate 映射是正確的,但我認為你的 java class 可能存在一些問題。 您能否顯示與您的問題相關的 java 類?

或者您沒有顯示可能導致此異常的其他相關 hibernate 映射。

還要確保 hibernate.cfg.xml 或 Spring 的 applicationContext 中的所有映射對應於實際映射。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM