Hibernate Mapping Problem

DerbyD

Grünschnabel
Hallo,

ich habe ein Problem, mir wird andauernd folgendes in Eclipse ausgeworfen:

Exception in thread "main" org.hibernate.MappingException: Association references unmapped class: model.Mahnung
at org.hibernate.cfg.HbmBinder.bindCollectionSecondPass(HbmBinder.java:2380)
at org.hibernate.cfg.HbmBinder$CollectionSecondPass.secondPass(HbmBinder.java:2662)
at org.hibernate.cfg.CollectionSecondPass.doSecondPass(CollectionSecondPass.java:43)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1130)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1286)

die Mapping Datei existiert, ebenso wie die Klasse. Was läuft hier schief :confused:

Vielen Dank im vorraus
 
Von hier aus betrachtet liegt Dein Fehler exakt in Klasse 4, Zeile 211, Zeichen 42.... :)
Nein - Scherz beiseite..

Etwas mehr müsstest Du schon verraten damit Dir geholfen werden kann. (Klassen, Mapping-Files)

Gruss
 
Ok, hier mal die restlichen Dateien
Code:
<?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>
        <property name="connection.url">
          xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
        </property>
        <property name="connection.driver_class">
          com.mysql.jdbc.Driver
        </property>
        <property name="connection.username">
          xxxxxxxxx
        </property>
        <property name="connection.password">
          xxxxxxxxxxxxx
        </property>
        <!-- Set AutoCommit to true -->
        <property name="connection.autocommit">
          true
        </property>
        <!-- SQL Dialect to use. Dialects are database specific -->
        <property name="dialect">
          org.hibernate.dialect.MySQLDialect
        </property>
        <!-- Mapping files -->
        <mapping resource="model/hibernate2/Mahnung.hbm.xml" />
        <mapping resource="model/hibernate2/Telefonnummer.hbm.xml" />
        <mapping resource="model/hibernate2/Autor.hbm.xml" />
        <mapping resource="model/hibernate2/Genre.hbm.xml" />
        <mapping resource="model/hibernate2/EMail.hbm.xml" />
        <mapping resource="model/hibernate2/MedienExemplar.hbm.xml" />
        <mapping resource="model/hibernate2/Schlagwort.hbm.xml" />
        <mapping resource="model/hibernate2/Verlagsort.hbm.xml" />
        <mapping resource="model/hibernate2/Ausleihe.hbm.xml" />
        <mapping resource="model/hibernate2/Person.hbm.xml" />
        <mapping resource="model/hibernate2/Medium.hbm.xml" />
      </session-factory>
    </hibernate-configuration>
Ausleih
Code:
<?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="model.Ausleihe" table="Ausleihe" >
          <id name="LeihID" type="java.lang.Long" column="LeihID" >
                <generator class="increment" />
          </id>

          <property name="letztertermin" type="java.sql.Date" column="letztertermin"/>
          <property name="rückgabedatum" type="java.sql.Date" column="rückgabedatum"/>
          <property name="Leihdatum" type="java.sql.Date" column="Leihdatum"/>
          <property name="ZuZahlenderBetrag" type="java.lang.Float" column="ZuZahlenderBetrag"/>

          <set name="Mahnung" cascade="all">
   			<key column="LeihID"/>
    		<one-to-many class="model.Mahnung"/>
		  </set>

		  <set name="MedienExemplar" table="leihtaus">
			<key column="LeihID"/>
			<many-to-many class="model.MedienExemplar" column="ExemplarID" />
		  </set>

      </class>
  </hibernate-mapping>
Mahnung
Code:
<?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="model.Mahung" table="Mahung" >
          <id name="id_Mahnung" type="java.lang.Long" column="id_Mahnung" >
                <generator class="increment" />
          </id>
          <property name="ausstellungsdatum" type="java.sql.Date" column="ausstellungsdatum"/>
          <property name="Mahnbetrag" type="java.lang.Float" column="Mahnbetrag"/>
          
      </class>
  </hibernate-mapping>

Hier nun die Klassen
-> Mahnung
Code:
package model;

import java.io.Serializable;
import java.sql.Date;

public class Mahnung implements Serializable
{

	/**
	 * @uml.property name="id_Mahnung"
	 */
	private long id_Mahnung;

	/**
	 * @uml.property name="ausstellungsdatum"
	 */
	private Date ausstellungsdatum;

	/**
	 * @uml.property name="mahnbetrag"
	 */
	private float mahnbetrag;

	/**
	 * Getter of the property <tt>id_Mahnung</tt>
	 * 
	 * @return Returns the id_Mahnung.
	 * @uml.property name="id_Mahnung"
	 */
	public long getId_Mahnung()
	{
		return id_Mahnung;
	}

	/**
	 * Setter of the property <tt>id_Mahnung</tt>
	 * 
	 * @param id_Mahnung
	 *          The id_Mahnung to set.
	 * @uml.property name="id_Mahnung"
	 */
	public void setId_Mahnung(long id_Mahnung)
	{
		this.id_Mahnung = id_Mahnung;
	}

	/**
	 * Getter of the property <tt>ausstellungsdatum</tt>
	 * 
	 * @return Returns the ausstellungsdatum.
	 * @uml.property name="ausstellungsdatum"
	 */
	public Date getAusstellungsdatum()
	{
		return ausstellungsdatum;
	}

	/**
	 * Setter of the property <tt>ausstellungsdatum</tt>
	 * 
	 * @param ausstellungsdatum
	 *          The ausstellungsdatum to set.
	 * @uml.property name="ausstellungsdatum"
	 */
	public void setAusstellungsdatum(Date ausstellungsdatum)
	{
		this.ausstellungsdatum = ausstellungsdatum;
	}

	/**
	 * Getter of the property <tt>mahnbetrag</tt>
	 * 
	 * @return Returns the mahnbetrag.
	 * @uml.property name="mahnbetrag"
	 */
	public float getMahnbetrag()
	{
		return mahnbetrag;
	}

	/**
	 * Setter of the property <tt>mahnbetrag</tt>
	 * 
	 * @param mahnbetrag
	 *          The mahnbetrag to set.
	 * @uml.property name="mahnbetrag"
	 */
	public void setMahnbetrag(float mahnbetrag)
	{
		this.mahnbetrag = mahnbetrag;
	}

}

--> Ausleih

Code:
package model;


import java.sql.Date;
import java.util.Collection;
import java.util.Currency;
import java.util.Iterator;

public class Ausleihe {

	/**
	 * @uml.property  name="LeihID"
	 */
	private long LeihID;

	/**
	 * Getter of the property <tt>LeihID</tt>
	 * @return  Returns the LeihID.
	 * @uml.property  name="LeihID"
	 */
	public long getLeihID() {
		return LeihID;
	}

	/**
	 * Setter of the property <tt>LeihID</tt>
	 * @param LeihID  The LeihID to set.
	 * @uml.property  name="LeihID"
	 */
	public void setLeihID(long LeihID) {
		this.LeihID = LeihID;
	}

	/**
	 * @uml.property  name="letztertermin"
	 */
	private Date letztertermin;

	/**
	 * Getter of the property <tt>letztertermin</tt>
	 * @return  Returns the letztertermin.
	 * @uml.property  name="letztertermin"
	 */
	public Date getLetztertermin() {
		return letztertermin;
	}

	/**
	 * Setter of the property <tt>letztertermin</tt>
	 * @param letztertermin  The letztertermin to set.
	 * @uml.property  name="letztertermin"
	 */
	public void setLetztertermin(Date letztertermin) {
		this.letztertermin = letztertermin;
	}

	/**
	 * @uml.property  name="rueckgabedatum"
	 */
	private Date rueckgabedatum;

	/**
	 * Getter of the property <tt>rueckgabedatum</tt>
	 * @return  Returns the rueckgabedatum.
	 * @uml.property  name="rueckgabedatum"
	 */
	public Date getRueckgabedatum() {
		return rueckgabedatum;
	}

	/**
	 * Setter of the property <tt>rueckgabedatum</tt>
	 * @param rueckgabedatum  The rueckgabedatum to set.
	 * @uml.property  name="rueckgabedatum"
	 */
	public void setRueckgabedatum(Date rueckgabedatum) {
		this.rueckgabedatum = rueckgabedatum;
	}

	/**
	 * @uml.property  name="Leihdatum"
	 */
	private Date Leihdatum;

	/**
	 * Getter of the property <tt>Leihdatum</tt>
	 * @return  Returns the Leihdatum.
	 * @uml.property  name="Leihdatum"
	 */
	public Date getLeihdatum() {
		return Leihdatum;
	}

	/**
	 * Setter of the property <tt>Leihdatum</tt>
	 * @param Leihdatum  The Leihdatum to set.
	 * @uml.property  name="Leihdatum"
	 */
	public void setLeihdatum(Date Leihdatum) {
		this.Leihdatum = Leihdatum;
	}

	/**
	 * @uml.property  name="ZuZahlenderBetrag"
	 */
	private float ZuZahlenderBetrag;

	/**
	 * Getter of the property <tt>ZuZahlenderBetrag</tt>
	 * @return  Returns the ZuZahlenderBetrag.
	 * @uml.property  name="ZuZahlenderBetrag"
	 */
	public float getZuZahlenderBetrag() {
		return ZuZahlenderBetrag;
	}

	/**
	 * Setter of the property <tt>ZuZahlenderBetrag</tt>
	 * @param ZuZahlenderBetrag  The ZuZahlenderBetrag to set.
	 * @uml.property  name="ZuZahlenderBetrag"
	 */
	public void setZuZahlenderBetrag(float ZuZahlenderBetrag) {
		this.ZuZahlenderBetrag = ZuZahlenderBetrag;
	}

	/** 
	 * @uml.property name="mahnung"
	 * @uml.associationEnd multiplicity="(0 -1)" inverse="ausleihe:Mahnung"
	 */
	private Collection<Mahnung> mahnung;

	/** 
	 * Getter of the property <tt>mahnung</tt>
	 * @return  Returns the mahnung.
	 * @uml.property  name="mahnung"
	 */
	public Collection<Mahnung> getMahnung() {
		return mahnung;
	}

	/**
	 * Returns an iterator over the elements in this collection. 
	 * @return  an <tt>Iterator</tt> over the elements in this collection
	 * @see java.util.Collection#iterator()
	 * @uml.property  name="mahnung"
	 */
	public Iterator<Mahnung> mahnungIterator() {
		return mahnung.iterator();
	}

	/**
	 * Returns <tt>true</tt> if this collection contains no elements.
	 * @return  <tt>true</tt> if this collection contains no elements
	 * @see java.util.Collection#isEmpty()
	 * @uml.property  name="mahnung"
	 */
	public boolean isMahnungEmpty() {
		return mahnung.isEmpty();
	}

	/**
	 * Returns <tt>true</tt> if this collection contains the specified element. 
	 * @param element  whose presence in this collection is to be tested.
	 * @see java.util.Collection#contains(Object)
	 * @uml.property  name="mahnung"
	 */
	public boolean containsMahnung(Mahnung Mahnung) {
		return mahnung.contains(Mahnung);
	}

	/**
	 * Returns <tt>true</tt> if this collection contains all of the elements in the specified collection.
	 * @param elements  collection to be checked for containment in this collection.
	 * @see java.util.Collection#containsAll(Collection)
	 * @uml.property  name="mahnung"
	 */
	public boolean containsAllMahnung(Collection<? extends Mahnung> mahnung) {
		return this.mahnung.containsAll(mahnung);
	}

	/**
	 * Returns the number of elements in this collection.
	 * @return  the number of elements in this collection
	 * @see java.util.Collection#size()
	 * @uml.property  name="mahnung"
	 */
	public int mahnungSize() {
		return mahnung.size();
	}

	/**
	 * Returns all elements of this collection in an array.
	 * @return  an array containing all of the elements in this collection
	 * @see java.util.Collection#toArray()
	 * @uml.property  name="mahnung"
	 */
	public Mahnung[] mahnungToArray() {
		return mahnung.toArray(new Mahnung[mahnung.size()]);
	}

	/**
	 * Ensures that this collection contains the specified element (optional operation). 
	 * @param element  whose presence in this collection is to be ensured.
	 * @see java.util.Collection#add(Object)
	 * @uml.property  name="mahnung"
	 */
	public boolean addMahnung(Mahnung Mahnung) {
		return mahnung.add(Mahnung);
	}

	/** 
	 * Setter of the property <tt>mahnung</tt>
	 * @param mahnung  The mahnung to set.
	 * @uml.property  name="mahnung"
	 */
	public void setMahnung(Collection<Mahnung> mahnung) {
		this.mahnung = mahnung;
	}

	/**
	 * Removes a single instance of the specified element from this collection, if it is present (optional operation).
	 * @param element  to be removed from this collection, if present.
	 * @see java.util.Collection#add(Object)
	 * @uml.property  name="mahnung"
	 */
	public boolean removeMahnung(Mahnung Mahnung) {
		return mahnung.remove(Mahnung);
	}

	/**
	 * Removes all of the elements from this collection (optional operation).
	 * @see java.util.Collection#clear()
	 * @uml.property  name="mahnung"
	 */
	public void clearMahnung() {
		mahnung.clear();
	}

	/** 
	 * @uml.property name="medienExemplar"
	 * @uml.associationEnd multiplicity="(1 -1)" inverse="ausleihe:MedienExemplar"
	 */
	private Collection<MedienExemplar> medienExemplar;

	/** 
	 * Getter of the property <tt>medienExemplar</tt>
	 * @return  Returns the medienExemplar.
	 * @uml.property  name="medienExemplar"
	 */
	public Collection<MedienExemplar> getMedienExemplar() {
		return medienExemplar;
	}

	/**
	 * Returns an iterator over the elements in this collection. 
	 * @return  an <tt>Iterator</tt> over the elements in this collection
	 * @see java.util.Collection#iterator()
	 * @uml.property  name="medienExemplar"
	 */
	public Iterator<MedienExemplar> medienExemplarIterator() {
		return medienExemplar.iterator();
	}

	/**
	 * Returns <tt>true</tt> if this collection contains no elements.
	 * @return  <tt>true</tt> if this collection contains no elements
	 * @see java.util.Collection#isEmpty()
	 * @uml.property  name="medienExemplar"
	 */
	public boolean isMedienExemplarEmpty() {
		return medienExemplar.isEmpty();
	}

	/**
	 * Returns <tt>true</tt> if this collection contains the specified element. 
	 * @param element  whose presence in this collection is to be tested.
	 * @see java.util.Collection#contains(Object)
	 * @uml.property  name="medienExemplar"
	 */
	public boolean containsMedienExemplar(MedienExemplar MedienExemplar) {
		return medienExemplar.contains(MedienExemplar);
	}

	/**
	 * Returns <tt>true</tt> if this collection contains all of the elements in the specified collection.
	 * @param elements  collection to be checked for containment in this collection.
	 * @see java.util.Collection#containsAll(Collection)
	 * @uml.property  name="medienExemplar"
	 */
	public boolean containsAllMedienExemplar(
			Collection<? extends MedienExemplar> medienExemplar) {
		return this.medienExemplar.containsAll(medienExemplar);
	}

	/**
	 * Returns the number of elements in this collection.
	 * @return  the number of elements in this collection
	 * @see java.util.Collection#size()
	 * @uml.property  name="medienExemplar"
	 */
	public int medienExemplarSize() {
		return medienExemplar.size();
	}

	/**
	 * Returns all elements of this collection in an array.
	 * @return  an array containing all of the elements in this collection
	 * @see java.util.Collection#toArray()
	 * @uml.property  name="medienExemplar"
	 */
	public MedienExemplar[] medienExemplarToArray() {
		return medienExemplar
				.toArray(new MedienExemplar[medienExemplar.size()]);
	}

	/**
	 * Ensures that this collection contains the specified element (optional operation). 
	 * @param element  whose presence in this collection is to be ensured.
	 * @see java.util.Collection#add(Object)
	 * @uml.property  name="medienExemplar"
	 */
	public boolean addMedienExemplar(MedienExemplar MedienExemplar) {
		return medienExemplar.add(MedienExemplar);
	}

	/** 
	 * Setter of the property <tt>medienExemplar</tt>
	 * @param medienExemplar  The medienExemplar to set.
	 * @uml.property  name="medienExemplar"
	 */
	public void setMedienExemplar(Collection<MedienExemplar> medienExemplar) {
		this.medienExemplar = medienExemplar;
	}

	/**
	 * Removes a single instance of the specified element from this collection, if it is present (optional operation).
	 * @param element  to be removed from this collection, if present.
	 * @see java.util.Collection#add(Object)
	 * @uml.property  name="medienExemplar"
	 */
	public boolean removeMedienExemplar(MedienExemplar MedienExemplar) {
		return medienExemplar.remove(MedienExemplar);
	}

	/**
	 * Removes all of the elements from this collection (optional operation).
	 * @see java.util.Collection#clear()
	 * @uml.property  name="medienExemplar"
	 */
	public void clearMedienExemplar() {
		medienExemplar.clear();
	}

}
 
Zuletzt bearbeitet:
Hallo,

ich hab jetzt leider keine Zeit, aber wenn das Problem bis dahin noch nicht gelöst ist, werde ich es mir nachher mal anschauen.

Bitte nutze das nächste mal die Code-Tags und nicht die Zitat-Tags.

MFG

zEriX
 
Also der Fehler ist eigentlich ganz einfach :)

Es existiert kein Mapping für die Klasse model.Mahnung - sagt er doch schon in der Fehlermeldung. Was existiert ist ein Mapping für die Klasse model.Mahung, aber damit kann er natürlich nichts anfangen ... was so ein kleines n doch ausmacht :)
 
Zurück