This is a strange one, or maybe I'm just being ignorant. 

STEP 1: I define a collection descriptor within PortletApplactionDefinition to the 
PortletDefinition.  Everything runs as expected with the mapping below.  Adding 
PortletDefinitions to the "portlets" collection in PortletApplication correctly sets 
the "appId" FK within each assoc. PortletDefinition and the DB insert/update goes as 
expected.

<class-descriptor         
class="org.apache.jetspeed.om.common.portlet.BasePortletApplicationDefinition" 
table="PORTLET_APPLICATION">
      <field-descriptor
         name="id"
         column="APPLICATION_ID"
         jdbc-type="INTEGER"
         primarykey="true"
         autoincrement="true"
         conversion="org.apache.jetspeed.util.ojb.ObjectIDtoLongFieldConversion"
      />
      
         ...Other mappings left out for brevity

      <collection-descriptor
        name="portlets"
         element-class-                  
         ref="org.apache.jetspeed.om.common.portlet.BasePortletDefinition"
         collection-
     class="org.apache.jetspeed.om.common.portlet.BasePortletDefinitionList"
      >
         <inverse-foreignkey field-ref="appId"/>
      </collection-descriptor>       
   </class-descriptor>

 

<class-descriptor
          class="org.apache.jetspeed.om.common.portlet.BasePortletDefinition"
          table="PORTLET_DEFINITION"
   >
   
      <field-descriptor
         name="id"
         column="ID"
         jdbc-type="INTEGER"
         primarykey="true"
         autoincrement="true"
         conversion="org.apache.jetspeed.util.ojb.ObjectIDtoLongFieldConversion"
      />
            
      <field-descriptor
         name="appId"
         column="APPLICATION_ID"
         jdbc-type="INTEGER"
         conversion="org.apache.jetspeed.util.ojb.ObjectIDtoLongFieldConversion"
      />
      ...Other mappings left out for brevity      

      
   </class-descriptor> 


STEP 2: If I now add a reference descriptor to PortletDefinition pointing back to the 
PortletApplicationDefinition like this:


<reference-descriptor name="app" 
class-ref="org.apache.jetspeed.om.common.portlet.BasePortletApplicationDefinition" >
         <foreignkey field-ref="appId"/>
     </reference-descriptor>

the FK "appId" is NOT set and causes a DB failure as the appId  is null, which is not 
allowed.

Now if I go back in, remove the reference descriptor and re-run the test, everything 
works fine.

What am I doing wrong here? Or is what I am doing not even allowed, which I hope is 
not the case.


Thanks,
*===================================*
* Scott T Weaver                    *
* Jakarta Jetspeed Portal Project   *
* [EMAIL PROTECTED] *
*===================================*
  


Reply via email to