使用Hibernate工具Session工厂时出错

时间:2017-06-08 17:25:17

标签: java hibernate spring-mvc hibernate-tools

我得到 org.hibernate.MappingException:找不到实体类:公司

在我的Spring MVC项目中,我已经使用注释映射了类,我使用了Hibernate。我安装并配置了Hibernate Tools以使用HSql编辑器和映射图。映射图打开,但Hsql编辑器不会运行。在Hibernate代码生成配置中,我只导出了XML映射和XML配置。我该如何解决这个问题,以便Hsql编辑器可以工作?

我通过Hibernate Tools中的编辑启动配置属性添加了映射。

更新:当我右键单击我的类文件(开源文件)时hibernate =&gt; Configuration =&gt;公司(或任何其他类文件)hibernate抛出错误:无法找到源文件。< / em>但如果我点击Mapping文件就会打开。

这是hibernate cfg文件,它位于src文件夹中: 更新:

    <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory name="sessionFactory">
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="hibernate.connection.password">xxxx</property>
    <property name="hibernate.connection.url">jdbc:mysql://&lt;host&gt;&lt;:port&gt;/&lt;database&gt;</property>
    <property name="hibernate.connection.username">root</property>
    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    <mapping resource="com/web/handyman/entity/Company.hbm.xml"></mapping>
     <mapping resource="com/web/handyman/entity/Address.hbm.xml"></mapping>
     <mapping resource="com/web/handyman/entity/Customers.hbm.xml"></mapping>
     <mapping resource="com/web/handyman/entity/Handyman.hbm.xml"></mapping>
     <mapping resource="com/web/handyman/entity/Locations.hbm.xml"></mapping>
     <mapping resource="com/web/handyman/entity/User.hbm.xml"></mapping>
     <mapping resource="com/web/handyman/entity/UserRoles.hbm.xml"></mapping>
     <mapping resource="com/web/handyman/entity/WorkOrder.hbm.xml"></mapping>
</session-factory>

这是我的 Company.hbm.xml ,它位于 com.web.handyman.entity包中:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<!-- Generated Jun 8, 2017 12:00:36 PM by Hibernate Tools 5.1.0.Alpha1 -->
<hibernate-mapping>
<class name="Company" table="company" catalog="" optimistic-lock="version">
    <id name="id" type="java.lang.Integer">
        <column name="id" />
        <generator class="identity" />
    </id>
    <many-to-one name="address" class="Address" fetch="select">
        <column name="address_id" />
    </many-to-one>
    <property name="companyName" type="string">
        <column name="company_name" length="45" />
    </property>
    <property name="phoneNumber" type="string">
        <column name="phone_number" length="25" />
    </property>
    <property name="fax" type="string">
        <column name="fax" length="25" />
    </property>
    <property name="email" type="string">
        <column name="email" length="25" />
    </property>
    <property name="website" type="string">
        <column name="website" length="45" />
    </property>
    <property name="info" type="string">
        <column name="info" length="250" />
    </property>
    <set name="customerses" table="customers" inverse="true" lazy="true" fetch="select">
        <key>
            <column name="company_id" />
        </key>
        <one-to-many class="Customers" />
    </set>
</class>
</hibernate-mapping>

这是休眠错误:

    org.hibernate.MappingException: entity class not found: Company
at org.hibernate.mapping.PersistentClass.getMappedClass(PersistentClass.java:132)
at org.hibernate.tuple.PropertyFactory.getGetter(PropertyFactory.java:323)
at org.hibernate.tuple.PropertyFactory.buildIdentifierAttribute(PropertyFactory.java:63)
at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:138)
at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:509)
at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:124)
at sun.reflect.GeneratedConstructorAccessor275.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.hibernate.persister.internal.PersisterFactoryImpl.createEntityPersister(PersisterFactoryImpl.java:96)
at org.hibernate.persister.internal.PersisterFactoryImpl.createEntityPersister(PersisterFactoryImpl.java:77)
at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:344)
at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:465)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:708)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:724)
at sun.reflect.GeneratedMethodAccessor734.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.jboss.tools.hibernate.runtime.common.Util.invokeMethod(Util.java:43)
at org.jboss.tools.hibernate.runtime.common.AbstractConfigurationFacade.buildTargetSessionFactory(AbstractConfigurationFacade.java:321)
at org.jboss.tools.hibernate.runtime.common.AbstractConfigurationFacade.buildSessionFactory(AbstractConfigurationFacade.java:169)
at org.hibernate.console.ConsoleConfiguration$5.execute(ConsoleConfiguration.java:285)
at org.hibernate.console.execution.DefaultExecutionContext.execute(DefaultExecutionContext.java:63)
at org.hibernate.console.ConsoleConfiguration.execute(ConsoleConfiguration.java:108)
at org.hibernate.console.ConsoleConfiguration.buildSessionFactory(ConsoleConfiguration.java:280)
at org.hibernate.eclipse.console.actions.ExecuteQueryAction.execute(ExecuteQueryAction.java:82)
at org.hibernate.eclipse.console.actions.ExecuteQueryAction.run(ExecuteQueryAction.java:55)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:473)
at org.hibernate.eclipse.console.actions.ExecuteQueryAction.runWithEvent(ExecuteQueryAction.java:59)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:595)
at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:511)
at org.eclipse.jface.action.ActionContributionItem$6.handleEvent(ActionContributionItem.java:462)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4481)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1329)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3819)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3430)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1127)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1018)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:156)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:694)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:606)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:139)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:669)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:608)
at org.eclipse.equinox.launcher.Main.run(Main.java:1515)
at org.eclipse.equinox.launcher.Main.main(Main.java:1488)
Caused by: org.hibernate.boot.registry.classloading.spi.ClassLoadingException: Unable to load class [Company]
at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:229)
at org.hibernate.boot.internal.ClassLoaderAccessImpl.classForName(ClassLoaderAccessImpl.java:62)
at org.hibernate.mapping.PersistentClass.getMappedClass(PersistentClass.java:127)
... 58 more
 Caused by: java.lang.ClassNotFoundException: Could not load requested class : Company
at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl$AggregatedClassLoader.findClass(ClassLoaderServiceImpl.java:217)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:226)
... 60 more

1 个答案:

答案 0 :(得分:0)

在hibernate配置文件中添加Company.hbm.xml