You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-user@db.apache.org by Vincenz Braun <vb...@bigdot.de> on 2004/07/17 16:38:19 UTC

auto-delete setting in 1:n relationships

Hello,

 

when setting auto-delete="link" in 1:n relationships

the documentation states that this behaves like

"none". What are the reason for not unlinking the 

referenced objects? Take the Article ProductGroup

example. Why does auto-delete = "link" for ProductGroup 

does not set productGroupId to null in referenced Articles

when deleting a ProductGroup?

 

Do I correctly understand the FAQ entry 3.1 

(difference between PB and ODMG) that the ODMG

layer would unlink theses references? (Do I have to switch

from RemovalAware to DListImpl to have this behaviour?)

 

Thanks a lot,

Vincenz


Help - I can get n-m relationship to work !!

Posted by Jim Theodoridis <oj...@tera.gr>.
Hi

I am using tomcat 5.0 struts 1.02 MySql
I have the relationship between tables Author -> Writes <- Document

I am having the following repository_user.xml

   <class-descriptor
         class="gr.tera.encyclopedia.bo.AuthorBO"
         table="AUTHOR"
   >
      <field-descriptor
         name="id"
         column="AUTHORID"
         jdbc-type="INTEGER"
         primarykey="true"
         autoincrement="true"
      />
      <field-descriptor
         name="name"
         column="AUTHORNAME"
         jdbc-type="VARCHAR"
      />
      <field-descriptor
         name="dates"
         column="AUTHORDATES"
         jdbc-type="VARCHAR"
      />
      <field-descriptor
         name="review"
         column="AUTHORREVIEW"
         jdbc-type="VARCHAR"
      />

     <collection-descriptor
         name="documents"
         element-class-ref="gr.tera.encyclopedia.bo.DocumentBO"
         indirection-table="WRITES"
      >
         <fk-pointing-to-this-class column="AUTHORID"/>
         <fk-pointing-to-element-class column="DOCUMENTID"/>
      </collection-descriptor>

</class-descriptor>
   
    

<!-- Definitions for gr.tera.encyclopedia.bo.DocumentBO -->
   <class-descriptor
         class="gr.tera.encyclopedia.bo.DocumentBO"
         table="DOCUMENT"
   >
      <field-descriptor
         name="id"
         column="DOCUMENTID"
         jdbc-type="INTEGER"
         primarykey="true"
         autoincrement="true"
      />
      <field-descriptor
         name="year"
         column="DOCUMENTYEAR"
         jdbc-type="INTEGER"
      />
      <field-descriptor
         name="categoryID"
         column="DOCUMENTCATEGORYID"
         jdbc-type="INTEGER"
      />
      <field-descriptor
         name="kindID"
         column="DOCUMENTKINDID"
         jdbc-type="INTEGER"
      />
      <field-descriptor
         name="name"
         column="DOCUMENTTITLE"
         jdbc-type="VARCHAR"
      />

     <collection-descriptor
         name="authors"
         element-class-ref="gr.tera.encyclopedia.bo.AuthorBO"
         indirection-table="WRITES"
      >
         <fk-pointing-to-this-class column="DOCUMENTID"/>
         <fk-pointing-to-element-class column="AUTHORID"/>
      </collection-descriptor>

  </class-descriptor>


When I am trying to get the Author objects from db i am getting the 
following error
If i remove the collection-descriptor then everything works fine
That declarations worked fine on ojb 0.9

java.lang.NullPointerException
    at 
org.apache.ojb.broker.accesslayer.MtoNCollectionPrefetcher.associateBatched(Unknown 
Source)
    at 
org.apache.ojb.broker.accesslayer.MtoNCollectionPrefetcher.prefetchRelationship(Unknown 
Source)
    at 
org.apache.ojb.broker.core.QueryReferenceBroker.performRetrievalTasks(Unknown 
Source)
    at 
org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(Unknown 
Source)
    at 
org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(Unknown 
Source)
    at 
org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(Unknown 
Source)
    at 
org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Unknown 
Source)
    at 
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery(Unknown 
Source)
    at 
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery(Unknown 
Source)
    at 
gr.tera.encyclopedia.service.EncyclopediaServiceImpl.getAuthors(EncyclopediaServiceImpl.java:48)
    at org.apache.jsp.showAuthors$jsp._jspService(showAuthors$jsp.java:71)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at 
org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:201)
    at 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:381)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:473)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
    at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
    at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at 
org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
    at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at 
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347)
    at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
    at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at 
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
    at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
    at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
    at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at 
org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1027)
    at 
org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125)
    at java.lang.Thread.run(Thread.java:536)
org.apache.ojb.broker.PersistenceBrokerException: 
java.lang.NullPointerException
    at 
org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(Unknown 
Source)
    at 
org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(Unknown 
Source)
    at 
org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Unknown 
Source)
    at 
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery(Unknown 
Source)
    at 
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery(Unknown 
Source)
    at 
gr.tera.encyclopedia.service.EncyclopediaServiceImpl.getAuthors(EncyclopediaServiceImpl.java:48)
    at org.apache.jsp.showAuthors$jsp._jspService(showAuthors$jsp.java:71)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at 
org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:201)
    at 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:381)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:473)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
    at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
    at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at 
org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
    at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at 
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347)
    at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
    at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at 
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
    at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
    at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
    at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at 
org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1027)
    at 
org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125)
    at java.lang.Thread.run(Thread.java:536)
Caused by: java.lang.NullPointerException
    at 
org.apache.ojb.broker.accesslayer.MtoNCollectionPrefetcher.associateBatched(Unknown 
Source)
    at 
org.apache.ojb.broker.accesslayer.MtoNCollectionPrefetcher.prefetchRelationship(Unknown 
Source)
    at 
org.apache.ojb.broker.core.QueryReferenceBroker.performRetrievalTasks(Unknown 
Source)
    at 
org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(Unknown 
Source)
    ... 41 more


---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org