Hibernate: MappingException und generelles

  • Themenstarter Themenstarter Tobias Köhler
  • Beginndatum Beginndatum
Java:
org.hibernate.MappingException: Unknown entity: test.entities.Format
	at org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:548)
	at org.hibernate.impl.SessionImpl.getEntityPersister(SessionImpl.java:1338)
	at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:96)
	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:186)
	at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:175)
	at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
	at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:535)
	at org.hibernate.impl.SessionImpl.save(SessionImpl.java:523)
	at org.hibernate.impl.SessionImpl.save(SessionImpl.java:519)
	at test.Test.main(Test.java:34)
 
Laut Log werden keine annotierten Klassen geladen. Kann es sein, dass da irgendwo noch ein anderes XML File rumliegt?

Gruß
Ollie
 
@Olli
Ich hatte damals noch nicht mit Annotations bei Hibernate gearbeitet, aber heißt das hier nicht, dass er die richtige File hat?

2008-03-31 14:12:48,000 DEBUG [org.hibernate.cfg.AnnotationConfiguration] - null<-org.dom4j.tree.DefaultAttribute@30e280 [Attribute: name class value "test.entities.Production"]
2008-03-31 14:12:48,140 DEBUG [org.hibernate.cfg.AnnotationConfiguration] - null<-org.dom4j.tree.DefaultAttribute@6e70c7 [Attribute: name class value "test.entities.Format"]

MFG

Sascha
 
Hm stimmt, die hatte ich übersehen. Was mit aber spanisch vorkommt ist der Client. In Hibernate gibt es keine AnnotationConfiguration. Zumindest nicht laut dieser Doku http://www.hibernate.org/hib_docs/v3/api/. Die Frage ist halt, wieso Hibernate dann trotzdem hochfährt. Bist du sicher, dass die oben gepostete Klasse DIESE Logausgaben verursacht?

Versuch mal
Java:
Configuration configuration = new Configuration().addResource("/hibernate.cfg.xml");

Gruß
Ollie
 
Also, mein Code ist 1 zu 1 aus "Spring & Hibernate" vom Hanser Verlag abgeschrieben. Aber ich habe ja keine andere Version, von daher kann die Ausgabe doch nur von meiner Version kommen. und ich habe auch nur 2 xml-Dateien; die hibernate.cfg und log4j

Edit: Wenn ich deinen Codeschnippsel bei mir einsetzte kommt folgendes:
Java:
Exception in thread "main" org.hibernate.MappingException: An AnnotationConfiguration instance is required to use <mapping class="test.entities.Production"/>
	at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1524)
	at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1479)
	at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1458)
	at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1432)
	at org.hibernate.cfg.Configuration.configure(Configuration.java:1352)
	at org.hibernate.cfg.Configuration.configure(Configuration.java:1338)
	at test.Test.main(Test.java:16)
 
Wenn ich heute Nachmittag nach Hause komme teste ich das mal.
Ich würde sagen, dass dein Code schon stimmt, aber das sehr wahrscheinlich was mit deinem Projekt oder so was nicht stimmt.

MFG

Sascha
 
Da es mit annotierten Klassen aus irgendeinem Grund nicht funktioniert, bin ich jetzt auf XML-Mapping umgestiegen. Und siehe da: ich konnte endlich eine Tabelle anlegen. Aber falls noch jmd eine Idee hat, wieso das Annotation-Mapping nicht funktionierte, wäre ich sehr dankbar, wenn derjenige es mir erklären kann;)

LG Tobias
 
Für Hibernate hinzugefügt habe ich:
- antlr.jar
- asm.jar
- cglib.jar
- commons-collections
- commons-logging
- dom4j
- ejb3-persistence
- hibernate3
- hibernate-annotations
- jta
- log4j

So, nun bin ich beim nächsten Problem angelangt: Many-To-Many Beziehungen

Ich habe meine fest definierten Formate und zu jedem kann es mehrere Productionen geben, wobei jede Production auch mehrere Formate haben kann.

Meine Umsetzung in XML sieht bisher so aus:

In der Format.hbm.xml-Datei:
Code:
<set name="productions" table="FORMATE_PRODUCTIONS" cascade="all">
            	<key column="FORMAT_ID" not-null="true"/>
            	<many-to-many class="de.euroimmun.lagerverwaltung.entities.Production">
                	<column name="PRODUCTION_ID"/>
            	</many-to-many>
        	</set>

Production XML:
Code:
<set name="formate" table="FORMATE_PRODUCTIONS" cascade="all">
            	<key column="PRODUCTION_ID" not-null="true"/>
            	<many-to-many class="de.euroimmun.lagerverwaltung.entities.Format">
                	<column name="FORMAT_ID"/>
            	</many-to-many>
            </set>

So und nun meine Frage: was muss ich an Java-Code hinzufügen, damit das klappt?
 
Zurück