Hibernate - Hbms aus JAR benutzen

y0dA

Erfahrenes Mitglied
Hi!
Sachlage:
Ich habe 2 Projekte wobei eines der beiden (TMCHibernate) alles bezüglich Datenbank besitzt, sprich u.a. Mapping Files (hbm) und die dazugehörigen Java Klassen.

Das andere Projekt (TMCWeb) soll TMCHibernate für die Kommunikation mit der DB benutzen - deshalb JAR dem Projekt hinzugefügt.

TMCWeb besitzt eine hibernate.cfg.xml (TMCHibernate nicht - stellt nur das Zeug zur Verfügung) und in jener muss ich nun die Mapping Files aus TMCHibernate bekannt geben - und hier liegt mein Problem, wie mache ich das?

Hab schon folgendes probiert:
(Musste zuvor das JAR in das lib Verzeichnis kopieren, da ich Maven benutze)
Code:
<mapping jar="lib/TMCHibernate-1.0-SNAPSHOT.jar" />
Fehlermeldung ab dem Zeitpunkt wo ich bspw etwas aus der DB lesen möchte:
Code:
Exception in thread "main" org.pcd.wam.gegenstandsbereich.tmcHibernate.dao.exception.DAOException: exception occurred while loading driver: 
	at at.pcd.wam.gegenstandsbereich.tmcWeb.common.FillTestDate.main(FillTestDate.java:33)
Caused by: org.hibernate.MappingException: Unknown entity: org.pcd.wam.gegenstandsbereich.tmcHibernate.model.web.PersonalName
	at org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:550)
	at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:68)
	at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878)
	at org.hibernate.impl.SessionImpl.load(SessionImpl.java:795)
	at org.hibernate.impl.SessionImpl.load(SessionImpl.java:788)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:301)
	at $Proxy0.load(Unknown Source)
	at org.pcd.wam.gegenstandsbereich.tmcHibernate.dao.GenericHibernateDAO.findById(GenericHibernateDAO.java:71)
	at at.pcd.wam.gegenstandsbereich.tmcWeb.common.FillTestDate.main(FillTestDate.java:27)

Oder:
Code:
<mapping jar="lib/TMCHibernate-1.0-SNAPSHOT.jar" resource="org.pcd.wam.gegenstandsbereich.tmcHibernate.model.web.PersonalName"/>
Fehlermeldung, gleich wie die hibernate.cfg.xml gelesen wird:
Code:
12:41:40,640 - INFO org.hibernate.cfg.Environment - Hibernate 3.2.5
12:41:40,656 - INFO org.hibernate.cfg.Environment - hibernate.properties not found
12:41:40,656 - INFO org.hibernate.cfg.Environment - Bytecode provider name : cglib
12:41:40,671 - INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling
12:41:40,750 - INFO org.hibernate.cfg.Configuration - configuring from resource: hibernate.cfg.xml
12:41:40,765 - INFO org.hibernate.cfg.Configuration - Configuration resource: hibernate.cfg.xml
12:41:40,875 - INFO org.hibernate.cfg.Configuration - Reading mappings from resource : org.pcd.wam.gegenstandsbereich.tmcHibernate.model.web.PersonalName
Exception in thread "main" org.hibernate.MappingNotFoundException: resource: org.pcd.wam.gegenstandsbereich.tmcHibernate.model.web.PersonalName not found
	at org.hibernate.cfg.Configuration.addResource(Configuration.java:563)
	at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1587)
	at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1555)
	at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1534)
	at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1508)
	at org.hibernate.cfg.Configuration.configure(Configuration.java:1428)
	at org.pcd.wam.gegenstandsbereich.tmcHibernate.HibernateUtil.getSessionFactory(HibernateUtil.java:65)
	at org.pcd.wam.gegenstandsbereich.tmcHibernate.HibernateUtil.getCurrentSession(HibernateUtil.java:78)
	at at.pcd.wam.gegenstandsbereich.tmcWeb.common.FillTestDate.main(FillTestDate.java:16)

Hat jemand eine Idee?
 
Lasse das hibernate.cfg.xml nun im TMCHibernate dann klappt alles. (Obwohl komischerweise bei mvn install die hbm files nicht mit erzeugt werden, also die fehlen im jar --> musste Projekt mittels mvn package erzeugen, da sind die dann drinnen.)
 
Zurück