Avatar billede dn666 Nybegynder
19. november 2004 - 10:58 Der er 1 løsning

hibernate many-to-many

Hej..

Jeg kan ikke få hibernate til at mappe ud fra XDoclet genereret hbm.xml

Jeg har et ganske simpelt opsæt..
3 tabeller

Account
KEY
USERNAME
PASSWORD

Group
KEY
NAME

Group-Account
GROUP_KEY
ACCOUNT_KEY

Jeg skal nu have lavet en many-to-many relation, så en Account kan ligge i flere Groups gennem Group-Account tabellen.

Min Account XDoclet mapping ser således ud:
    /**
    * @hibernate.set role="groups" table="ACCOUNT_GROUP"
    *    cascade="all" readonly="true"
    * @hibernate.collection-key column="ACCOUNT_KEY"
    * @hibernate.collection-many-to-many
    *    class="dk.videone.voware.hibernate.Group" column="GROUP_KEY"
    * @return java.util.Set
    *
    */
    public List getGroups() {
        return groups;
    }

Når jeg har genereret gennem XDoclet ser min mapping i Account.hbm.xml således ud:

        <set
            role="groups"
            table="ACCOUNT_GROUP"
            lazy="false"
            readonly="true"
            cascade="all"
            sort="unsorted"
        >

              <key
                  column="ACCOUNT_KEY"
              >
              </key>

              <many-to-many
                  class="dk.videone.voware.hibernate.Group"
                  column="GROUP_KEY"
                  outer-join="auto"
              />

        </set>


men i det jeg  prøvet at lægge nogle grupper i Account
setGroups(groups);
fra min facade kommer en masse Exceptions.
det virker som om dk/videone/voware/hibernate/Account.hbm.xml ikke 
findes men..... den er der
her er en stack trace:




10:35:50,484 INFO  [Configuration] Configuration resource: /hibernate.cfg.xml
10:35:50,531 INFO  [Configuration] Mapping resource: dk/videone/voware/hibernate/Account.hbm.xml
10:35:53,687 INFO  [Binder] Mapping class: dk.videone.voware.hibernate.Account -> ACCOUNT
10:35:53,812 ERROR [Configuration] Could not configure datastore from input stream
java.lang.NullPointerException
        at net.sf.hibernate.util.StringHelper.qualify(StringHelper.java:241)
        at net.sf.hibernate.cfg.Binder.bindCollection(Binder.java:509)
        at net.sf.hibernate.cfg.Binder$2.create(Binder.java:1434)
        at net.sf.hibernate.cfg.Binder.propertiesFromXML(Binder.java:1028)
        at net.sf.hibernate.cfg.Binder.bindRootClass(Binder.java:362)
        at net.sf.hibernate.cfg.Binder.bindRoot(Binder.java:1256)
        at net.sf.hibernate.cfg.Configuration.add(Configuration.java:252)
        at net.sf.hibernate.cfg.Configuration.addInputStream(Configuration.java:288)
        at net.sf.hibernate.cfg.Configuration.addResource(Configuration.java:336)
        at net.sf.hibernate.cfg.Configuration.doConfigure(Configuration.java:1013)
        at net.sf.hibernate.cfg.Configuration.doConfigure(Configuration.java:969)
        at net.sf.hibernate.cfg.Configuration.configure(Configuration.java:897)
        at net.sf.hibernate.cfg.Configuration.configure(Configuration.java:883)
        at dk.videone.voware.hibernate.HibernateUtil.<clinit>(Unknown Source)
        at dk.videone.voware.actions.TestAction.execute(Unknown Source)
        at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:168)
        at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
        at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
        at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
        at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
        at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:115)
        at com.opensymphony.webwork.dispatcher.ServletDispatcher.serviceAction(ServletDispatcher.java:273)
        at com.opensymphony.webwork.dispatcher.ServletDispatcher.service(ServletDispatcher.java:243)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
        at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:146)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
        at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:122)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
        at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
        at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
        at java.lang.Thread.run(Unknown Source)
10:35:54,046 ERROR [HibernateUtil] Initial SessionFactory creation failed.
net.sf.hibernate.MappingException: Error reading resource: dk/videone/voware/hibernate/Account.hbm.xml
        at net.sf.hibernate.cfg.Configuration.addResource(Configuration.java:339)
        at net.sf.hibernate.cfg.Configuration.doConfigure(Configuration.java:1013)
        at net.sf.hibernate.cfg.Configuration.doConfigure(Configuration.java:969)
        at net.sf.hibernate.cfg.Configuration.configure(Configuration.java:897)
        at net.sf.hibernate.cfg.Configuration.configure(Configuration.java:883)
        at dk.videone.voware.hibernate.HibernateUtil.<clinit>(Unknown Source)
        at dk.videone.voware.actions.TestAction.execute(Unknown Source)
        at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:168)
        at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
        at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
        at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
        at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
        at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:115)
        at com.opensymphony.webwork.dispatcher.ServletDispatcher.serviceAction(ServletDispatcher.java:273)
        at com.opensymphony.webwork.dispatcher.ServletDispatcher.service(ServletDispatcher.java:243)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
        at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:146)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
        at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:122)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
        at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
        at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
        at java.lang.Thread.run(Unknown Source)
Caused by: net.sf.hibernate.MappingException: java.lang.NullPointerException
        at net.sf.hibernate.cfg.Configuration.addInputStream(Configuration.java:296)
        at net.sf.hibernate.cfg.Configuration.addResource(Configuration.java:336)
        ... 43 more
Caused by: java.lang.NullPointerException
        at net.sf.hibernate.util.StringHelper.qualify(StringHelper.java:241)
        at net.sf.hibernate.cfg.Binder.bindCollection(Binder.java:509)
        at net.sf.hibernate.cfg.Binder$2.create(Binder.java:1434)
        at net.sf.hibernate.cfg.Binder.propertiesFromXML(Binder.java:1028)
        at net.sf.hibernate.cfg.Binder.bindRootClass(Binder.java:362)
        at net.sf.hibernate.cfg.Binder.bindRoot(Binder.java:1256)
        at net.sf.hibernate.cfg.Configuration.add(Configuration.java:252)
        at net.sf.hibernate.cfg.Configuration.addInputStream(Configuration.java:288)
        ... 44 more
10:35:54,343 ERROR [Engine] StandardWrapperValve[webwork]: Servlet.service() for servlet webwork threw exception
java.lang.ExceptionInInitializerError
        at dk.videone.voware.hibernate.HibernateUtil.<clinit>(Unknown Source)
        at dk.videone.voware.actions.TestAction.execute(Unknown Source)
        at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:168)
        at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
        at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
        at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
        at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
        at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:115)
        at com.opensymphony.webwork.dispatcher.ServletDispatcher.serviceAction(ServletDispatcher.java:273)
        at com.opensymphony.webwork.dispatcher.ServletDispatcher.service(ServletDispatcher.java:243)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
        at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:146)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
        at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:122)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
        at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
        at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
        at java.lang.Thread.run(Unknown Source)
Caused by: net.sf.hibernate.MappingException: Error reading resource: dk/videone/voware/hibernate/Account.hbm.xml
        at net.sf.hibernate.cfg.Configuration.addResource(Configuration.java:339)
        at net.sf.hibernate.cfg.Configuration.doConfigure(Configuration.java:1013)
        at net.sf.hibernate.cfg.Configuration.doConfigure(Configuration.java:969)
        at net.sf.hibernate.cfg.Configuration.configure(Configuration.java:897)
        at net.sf.hibernate.cfg.Configuration.configure(Configuration.java:883)
        ... 39 more
Caused by: net.sf.hibernate.MappingException: java.lang.NullPointerException
        at net.sf.hibernate.cfg.Configuration.addInputStream(Configuration.java:296)
        at net.sf.hibernate.cfg.Configuration.addResource(Configuration.java:336)
        ... 43 more
Caused by: java.lang.NullPointerException
        at net.sf.hibernate.util.StringHelper.qualify(StringHelper.java:241)
        at net.sf.hibernate.cfg.Binder.bindCollection(Binder.java:509)
        at net.sf.hibernate.cfg.Binder$2.create(Binder.java:1434)
        at net.sf.hibernate.cfg.Binder.propertiesFromXML(Binder.java:1028)
        at net.sf.hibernate.cfg.Binder.bindRootClass(Binder.java:362)
        at net.sf.hibernate.cfg.Binder.bindRoot(Binder.java:1256)
        at net.sf.hibernate.cfg.Configuration.add(Configuration.java:252)
        at net.sf.hibernate.cfg.Configuration.addInputStream(Configuration.java:288)
        ... 44 more
10:36:50,312 INFO  [TomcatDeployer] undeploy, ctxPath=/voware, warUrl=file:/C:/java/jboss-4.0.0RC1/server/default/tmp/deploy/tmp36710voware-exp.war/
10:47:32,281 WARN  [DeploymentInfo] Could not delete file:/C:/java/jboss-4.0.0RC1/server/default/tmp/deploy/tmp36710voware-exp.war/ restart will delete it
Avatar billede dn666 Nybegynder
20. januar 2005 - 14:39 #1
Lukker....
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester