Überwintern: nicht zugeordnete Klasse Verein Ausnahme

Ich weiß, das sollte ein ziemlich elementares Problem zu beheben, aber 1) ich bin relativ neu in den Ruhezustand, und 2) die fixes, die ich gefunden habe nicht (scheinen) hier gelten.

Hier ist die exception die ich erhalte:

org.hibernate.MappingException: Ein Verein aus der Tabelle POSTS bezieht sich auf 
eine nicht zugeordnete Klasse: com.Bohnen.Benutzer an 
org.hibernate.cfg.- Konfiguration.secondPassCompileForeignKeys(Configuration.java:1285)

Dieser tritt auf, wenn Hibernate versucht selbst zu konfigurieren.

Objekte arbeite ich mit dem user, Beiträge (abstrakte Oberklasse), Status und Kommentare (konkrete Unterklassen der Post). Jedes bean aus einer von zwei Tabellen: BENUTZER und BEITRÄGE. Die Benutzerobjekte sind ziemlich Vanille: viel bland Felder zur Beschreibung der Benutzer. Zusätzlich zu den ebenso langweiligen Felder, ein Status und ein Kommentar haben beide Besitzer (Benutzer, der es gepostet hat). Was unterscheidet einen Status aus ein Kommentar ist, dass ein Status können Sie eine Liste der Kommentare, die zu ihm angebracht, aber kein Elternteil, während ein Kommentar hat keine Kinder Beiträge, aber ein Elternteil hat (ja, das ist im Grunde Facebook).

Von dem, was ich gelesen habe, scheint das problem zu sein, in der viele-zu-eins-Zuordnungen, aber ich kann nicht scheinen zu finden, alles falsch. Hier sind die drei Dateien, die ich verwende.

hibernate.cfg.xml:

<hibernate-configuration - > 
<session-factory> 
... 
<!-- abgebildet Persistenz-Klassen --> 
<mapping resource="User.hbm.xml" /> 
<mapping resource="Post.hbm.xml" /> 
</session-factory> 
</hibernate-configuration - >

User.hbm.xml:

<hibernate-mapping> 
<class name="com.Bohnen.User" entity-name="User" table="USERS" proxy="User"> 
<id name="uid" type="java.lang.Integer"> 
<column name="uid" /> 
<generator class="assigned" /> 
</id> 
... 
</Klasse> 
</hibernate-mapping>

Post.hbm.xml:

<hibernate-mapping>
    <class name="com.beans.Post" entity-name="Post" table="POSTS" proxy="Post" abstract="true">
        <id name="pid" type="java.lang.Integer">
            <column name="pid" />
            <generator class="assigned" />
        </id>            
        <discriminator column="type" />
        <one-to-one name="parent" class="com.beans.Post"></one-to-one>
        <many-to-one name="owner" class="com.beans.User" update="false" fetch="select">
            <column name="owner" />
        </many-to-one>
        <property name="postDate" type="java.sql.Timestamp" update="false">
            <column name="post_date" />
        </property>
        <property name="content" type="java.lang.String" update="false">
        <column name="content" />
        </property>
        <property name="type" type="string" update="false">
         <column name="type" />
        </property>

        <subclass name="com.beans.Status" discriminator-value="status">
         <list name="children" inverse="false" table="POSTS" lazy="true">
                <key column="pid" />
             <index />
             <one-to-many class="com.beans.Comment" />
     </list>
        </subclass>

        <subclass name="com.beans.Comment" discriminator-value="comment"></subclass> 
    </class>
</hibernate-mapping>

Habe ich das Gefühl ich muss irgendwo angeben, die Tatsache, dass ein Status enthält eine ArrayList Kommentar, aber ist das nicht geschieht implizit durch die "list" - Konstrukt in die Post.hbm.xml Datei?

Den xml-Dateien existieren in meinem classpath WEB-INF/classes), und die .java-Dateien selbst werden sichtbar an der Anwendung. Erkenntnisse wäre dankbar!

InformationsquelleAutor Magsol | 2009-10-14
Schreibe einen Kommentar