Hello there!
I'm new to OJB. I've tried a simple O/R mapping and it worked, but when
i've tried to map real life objects i got a problem.

There are three classes:

LOMGeneralObject & LOMGeneralLanguage & LangString:

public class LOMGeneralObject {
    private BigDecimal identifier;
    private LangString title;
    private BigDecimal titleId;
    private Vector language;
    .....
}

public class LOMGeneralLanguage {
    BigDecimal id;
    String language;
    LOMGeneralObject  gen_object;
    BigDecimal gid;
......
}


public class LangString {
    BigDecimal id;
    String string;
    String language;
....
}

there are also some SQL tables (postgres) for them:

TABLE GENERAL:
IDENTIFIER SERIAL PRIMARY KEY
TITLE DECIMAL(10,0)

TABLE LANGSTRING:
ID SERIAL
LANGUAGE VARCHAR
STRING VARCHAR

TABLE GENERAL_LANGUAGE:
ID SERIAL PRIMARY KEY
LANGUAGE VARCHAR
GID DECIMAL(10,0)


and here goes XML-mapping for them:

 <class-descriptor class="ru.chemnet.lom.LOMGeneralObject"
table="GENERAL"  >

        <field-descriptor name="identifier" column="identifier"
sequence-name="general_identifier_seq" jdbc-type="NUMERIC"
autoincrement="true" primarykey="true" />

        <field-descriptor name="titleId" column="title"
jdbc-type="NUMERIC"/>

        <reference-descriptor name="title"
class-ref="ru.chemnet.lom.LangString" auto-retrieve="true"
auto-update="true" auto-delete="true"  >

            <foreignkey field-ref ="titleId"  />

        </reference-descriptor>

        <collection-descriptor name="language" 
element-class-ref="ru.chemnet.lom.LOMGeneralLanguage" orderby="id"
sort="DESC" >
            <inverse-foreignkey field-ref="gid"/>
        </collection-descriptor>
</class-descriptor>

<class-descriptor class="ru.chemnet.lom.LangString" table="LANGSTRING" >
        <field-descriptor name="id" column="id" jdbc-type="NUMERIC"
autoincrement="true" primarykey="true"
sequence-name="langstring_id_seq"  />
        <field-descriptor name="language" column="language"
jdbc-type="VARCHAR" />
        <field-descriptor name="string" column="string"
jdbc-type="VARCHAR" />
    </class-descriptor>

<class-descriptor class="ru.chemnet.lom.LOMGeneralLanguage"
table="GENERAL_LANGUAGE">
        <field-descriptor name="id" column="id" jdbc-type="NUMERIC"
autoincrement="true" primarykey="true"
sequence-name="general_language_id_seq" />
        <field-descriptor name="language" column="language"
jdbc-type="VARCHAR"/>
        <field-descriptor name="gid" column="gid"  jdbc-type="NUMERIC"/>
        <reference-descriptor name="gen_object"
class-ref="ru.chemnet.lom.LOMGeneralObject" auto-retrieve="true"
auto-update="true" auto-delete="true">
            <foreignkey field-ref="gid"/>
        </reference-descriptor>
    </class-descriptor>


The problem is that I try to make LOMGeneralObject and to store it.
title field of LOMGeneralObject stores to LANGSTRING table perfectly,
but 
LOMGeneralObject.title of Vector type doesn't make any records in
GENERAL_LANGUAGE at all.

I've read Advanced O/R mapping tutorial for hundred times and still
cannot find out what' wrong.
May be someone can help me? Thank you. 



-- 
Regards,
CEO Linux-Online.Ru
Korolyov Timofey

www.linuxshop.ru :: www.prefnews.ru :: www.dotstyle.ru

JabberID: [EMAIL PROTECTED]

Reply via email to