hi patrick,

the collection-descriptor is wrong :

        <collection-descriptor name ="keywords"
        
element-class-ref="ch.ctc.support.category.KeywordVO"
                                                   auto-retrieve="true"
                                                   auto-update="true"
        
indirection-table="document_keyword">
                <fk-pointing-to-this-class column="keyword_id"/>
                <fk-pointing-to-this-class column="document_id"/>
        </collection-descriptor>

there's no <fk-pointing-to-element-class but two <fk-pointing-to-this-class

gruss aus bern
jakob



Patrick Scheuerer wrote:

Hello everybody,

I just got started with OJB and i'm experiencing some problems. Here's the
scenario that i'm trying to get to work:

A DOCUMENT belongs to 1..n CATEGORY.
A DOCUMENT is relevant to 0..n PRODUCT_MODELs.
A DOCUMENT is written by 1..1 AUTHOR.
D DOCUMENT is described by 1..n KEYWORDs.

My first question is: since there are many-to-many relatioships between
DOCUMENT and CATEGORY and DOCUMENT and KEYWORDS there are two join tables
called DOCUMENT_CATEGORY and DOCUMENTS_KEYWORD. How does one handle join
tables needed by many-to-many in OJB?

All the data retrieved from the database (MySQL) should be wrapped in
ValueObject Classes.

Following is the repository_user.xml file that I'm using so far. Every time
I'm trying to save object to the datastore or try to retrieve them I get a
org.apache.ojb.broker.metadata.ClassNotPersistenceCapableException with the
following message: java.util.ArrayList not found in OJB Repository.

Somebody suggested yesterday to use a List instead of a Vector (I tried
Vectors first) but the result is the same.

I tips, hints, suggestions would be highly appreciated. TIA.

Patrick

<-- start of repository_user.xml -->
<class-descriptor class="ch.ctc.support.member.MemberVO" table="member">


<field-descriptor id="1" name="memberId" column="member_id" jdbc-type="BIGINT" primarykey="true" autoincrement="true"
access="anonymous"/>
<field-descriptor id="2" name="firstName" column="first_name" jdbc-type="VARCHAR"/>
<field-descriptor id="3" name="lastName" column="last_name" jdbc-type="VARCHAR"/> <field-descriptor id="4" name="userName" column="user_name" jdbc-type="VARCHAR"/> <field-descriptor id="5" name="password" column="password" jdbc-type="VARCHAR"/> <field-descriptor id="6" name="email" column="email" jdbc-type="VARCHAR"/> <field-descriptor id="7" name="companyId" column="company_id" jdbc-type="BIGINT"/>
<reference-descriptor name="category"
class-ref="ch.ctc.suppport.CategoryVO" auto-retrieve="true">
<foreignkey field-id-ref="9"/>
</reference-descriptor>
</class-descriptor>


<class-descriptor class="ch.ctc.support.document.DocumentVO" table="document">

<field-descriptor id="1" name="documentId" column="document_id" jdbc-type="BIGINT" primarykey="true" autoincrement="true"
access="anonymous"/>



<field-descriptor id="2" name="documentName" column="document_name" jdbc-type="VARCHAR"/> <field-descriptor id="3" name="documentDescription" column="document_description" jdbc-type="VARCHAR"/> <field-descriptor id="4" name="documentVersion" column="document_version" jdbc-type="VARCHAR"/> <field-descriptor id="5" name="documentAbstract" column="document_abstract" jdbc-type="LONGVARBINARY"/>
<field-descriptor id="6" name="creationDate" column="creation_date" jdbc-type="DATE"/>
<field-descriptor id="7" name="palModel" column="pal_model_id" jdbc-type="BIGINT"/>
<field-descriptor id="8" name="keywords" column="keyword_id" jdbc-type="BIGINT"/>
<field-descriptor id="9" name="category" column="category_id" jdbc-type="BIGINT"/>
<field-descriptor id="10" name="documentAuthor" column="member_id" jdbc-type="BIGINT"/>

<collection-descriptor name ="palModel"
element-class-ref="ch.ctc.support.category.PalModelVO" auto-retrieve="true" auto-update="true"
indirection-table="pal_relevancy"> <fk-pointing-to-this-class column="pal_model_id"/>
<fk-pointing-to-this-class column="document_id"/>
</collection-descriptor>

<collection-descriptor name ="keywords"

element-class-ref="ch.ctc.support.category.KeywordVO" auto-retrieve="true" auto-update="true"
indirection-table="document_keyword"> <fk-pointing-to-this-class column="keyword_id"/>
<fk-pointing-to-this-class column="document_id"/>
</collection-descriptor>

<reference-descriptor name="category"
class-ref="ch.ctc.suppport.CategoryVO" auto-retrieve="true">
<foreignkey field-id-ref="9"/>
</reference-descriptor>

<reference-descriptor name="doucmentAuthor"
class-ref="ch.ctc.suppport.MemberVO" auto-retrieve="true">
<foreignkey field-id-ref="10"/>
</reference-descriptor>
</class-descriptor>


<class-descriptor class="ch.ctc.support.category.CategoryVO" table="category">
<field-descriptor id="1" name="categoryId" column="category_id" jdbc-type="BIGINT" primarykey="true" autoincrement="true"
access="anonymous"/> <field-descriptor id="2" name="categoryName" column="category_name" jdbc-type="VARCHAR"/> <field-descriptor id="3" name="categoryDescription" column="category_description" jdbc-type="VARCHAR"/>
</class-descriptor>

<class-descriptor class="ch.ctc.support.category.PALModelVO" table="pal_model">

<field-descriptor id="1" name="palModelId" column="pal_model_id" jdbc-type="BIGINT" primarykey="true" autoincrement="true"
access="anonymous"/> <field-descriptor id="2" name="palModelName" column="pal_model_name" jdbc-type="VARCHAR"/>
<field-descriptor id="3" name="palModelDescription" column="pal_model_description" jdbc-type="VARCHAR"/>
</class-descriptor>

<class-descriptor class="ch.ctc.support.category.CompanyVO" table="company">

<field-descriptor id="1" name="companyId"
column="company_id" jdbc-type="BIGINT" primarykey="true" autoincrement="true"/> <field-descriptor id="2" name="companyName" column="company_name" jdbc-type="VARCHAR"/>
</class-descriptor>
<-- end of repository_user.xml -->




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to