Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hibernate - Hbm Files in einem separaten JAR - wie zugreifen
Hi!
Also wir haben hier ein Projekt names TMCHibernate, welches die Mapping Files sowie die Klassen dazu besitzt. Nun möchte ich jenes Projekt in ein anderes als JAR inkludieren und mit jenen Objekten arbeiten können.
Wie muss hierzu das Mapping in der hibernate.cxg.xml aussehen?
Exception in thread "main" org.hibernate.MappingNotFoundException: resource: org/pcd/wam/gegenstandsbereich/tmcHibernate/hbm/PersonalName.hbm.xml 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)
Muss man das Mapping anders machen, wenn man auf ein Mapping File in einem JAR zugreift?
Ich benutze auch Maven (falls das eine Rolle spielt).
**EDIT**
Nun habe ich mal im TMCHibernate das hbm File in das selbe package wie die Klasse gegeben und in meine hibernate.cfg.xml im TMCHibernate folgendes eingetragen:
Weiters das .jar in den lib Ordner des Projektes kopiert und nun bekomme ich folgenden
Fehler:
Code:
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)
Hab es nun so gelöst dass ich die hibernate.cfg.xml in TMCHibernate lasse und nicht in TMCWeb habe. Weiters gab/gibt es Probleme wenn ich TMCHibernate mittels Maven (mvn install) als JAR erzeuge, da dann nämlich die hbm files fehlen - warum auch immer.
Wenn ich mvn package mache, dann bekomme ich auch die hbm in das JAR.