Hallo,
ich möchte mit hbm2java aus einer Mapping-Datei (.hbm.xml) eine POJO (.java) erzeugen.
Ich erhalte folgende Fehlermeldung (gekürzt):
--
[hibernatetool] org.hibernate.MappingException: class WebUser not found while looking for property: login
[hibernatetool] java.lang.ClassNotFoundException: WebUser
--
Wieso? Nach meinem Verständnis nimmt hbm2java eine .hbm.xml Datei und erzeugt daraus eine .java Datei. Wieso wird nun eine Class-Datei (.class) verlangt?
Ich habe mir mal die Mühe gemacht, die POJO von Hand zu erstellen und daraus eine .class Datei zu erstellen. Sobald hbm2java diese .class Datei findet, erzeugt er mir nun endlich eine POJO - aber die hab ich ja nun schon.
Liegt hier ein prinzipielles Verständnisproblem vor?
Hier nun noch die XML Dateien. Verwendet habe ich Ant 1.7.0 sowie Hibernate Tools 3.2.0 beta9. Hier die XML Dateien:
----
build.xml
----
<?xml version="1.0" encoding="UTF-8"?>
<project name="hbm2java" default="create">
<property name="jdbc.driver.jar" value="D:\Java\Libraries\Oracle\10g" />
<path id="toolslib">
<path location="lib/hibernate-tools.jar" />
<path location="lib/hibernate3.jar" />
<path location="lib/freemarker.jar" />
<path location="${jdbc.driver.jar}" />
</path>
<taskdef name="hibernatetool" classname="org.hibernate.tool.ant.HibernateToolTask" classpathref="toolslib" />
<target name="create">
<hibernatetool destdir="generated">
<classpath>
<path location="./" />
</classpath>
<configuration configurationfile="hibernate.cfg.xml" />
<hbm2java/>
</hibernatetool>
</target>
</project>
---
hibernate.cfg.xml
---
<?xml version='1.0' encoding='utf-8'?>
<!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 resource="WebUser.hbm.xml" />
</session-factory>
</hibernate-configuration>
---
WebUser.hbm.xml
---
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="WebUser" table="webuser" dynamic-update="true">
<id name="login" column="login">
<generator class="increment"/>
</id>
<version name="last_update" column="last_update" type="timestamp"/>
<property name="familyName" column="familyname" not-null="true"/>
<property name="givenName" column="givenname" not-null="true"/>
<property name="gender" column="gender"/>
</class>
</hibernate-mapping>
|