HTTP Status 500 - Unknown entity:找不到實體類的問題解決方法?


找不到實體類,是因為數據庫對話工廠 sessionFactory出問題了,可能出現問題的地方

(1)、sessionFactory的配置

在整合SSH工程中,我們不再使用hibernate.cfl.xml文件進行配置,而是交給了spring的管理,那么在它的核心配置文件中applicationContext.xml中配置sessionFactory如下:

<!-- 配置LocalSessionFactoryBean,將官方的session的工廠配置到spring -->
    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <!-- 注入hibernate相關的屬性配置 -->
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
                <prop key="hibernate.hbm2ddl.auto">update</prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.format_sql">true</prop>
            </props>
        </property>
        <!-- 注入hibernate的映射文件 -->
        <property name="mappingLocations">
            <list>
                <!--加載domian內的實體類映射文件,主要這里路徑是文件路徑不是類路徑,需要帶有/ 。這里我犯錯錯誤!導致加載不上-->
                <value>classpath:com/oa/domain/*.hbm.xml</value>                
            </list>
        </property>        
    </bean>

 

(2)、映射文件問題的XXX.hbl.xml 

 我的實體類和映射都是使用hibernate工具自動生成的,一般自動生成的實體類沒有問題,出問題的最多的就是映射文件,因為自動生成的會添加許多現在可能不需要的屬性

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generated 2018-9-10 17:20:14 by Hibernate Tools 5.3.1.Final -->
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping >
    <class name="com.oa.domain.User" table="user">//這里自動生成會出現很多問題
        <id name="oaid" type="int">
            <column name="oaid" />
            <generator class="assigned" />
        </id>
        <property generated="never" lazy="false" name="username"
            optimistic-lock="true" type="string" unique="false">
            <column length="40" name="username" />
        </property>
        <property generated="never" lazy="false" name="password"
            optimistic-lock="true" type="string" unique="false">
            <column length="40" name="password" />
        </property>
        <property generated="never" lazy="false" name="code"
            optimistic-lock="true" type="string" unique="false">
            <column length="20" name="code" />
        </property>
    </class>
</hibernate-mapping>

 (3)、實體類出問題

    實體類配置一般不會出問題,注意對照。

以上三個步驟中出任何一個問題,都會造成org.hibernate.MappingException: Unknown entity實體類異常

成功!!!努力!!國圖學習紀錄!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM