Hi Ned, I very much appreciate your help and your time.
It is still not working after I modify the mapping file.
Without many-key in sql, the Jdo only load one orderLine per order
and still remove the second orderLine.

==========================================================================
When I do create() AND query(), I got:

.....insert orders into database
[test] Castor: Creating com.MyOrder (1)
[test] Castor: Creating com.MyOrder (2)
[test] Castor: Creating com.OrderLine (null)
[test] Castor: Creating com.OrderLine (null)
[test] Castor: Creating com.OrderLine (null)
[test] Castor: Creating com.OrderLine (null)
[test] Castor: Creating com.OrderLine (null)
.....insert orders done

****************start query
.....get database
[test] SELECT "ORDERS_S"."ID","ORDERS_S"."NAME","ORDERLINE_S"."ID" FROM
"ORDERLINE_S","ORDERS_S
" WHERE "ORDERS_S"."ID"="ORDERLINE_S"."ID"(+)
[test] Castor: Loading com.OrderLine (1)
[test] Castor: Loading com.OrderLine (2)
[test] Castor: Loading com.MyOrder (1)
.......order is: First order
.......order Line Id is: 1
.......order Line Id is: 2
[test] Castor: Loading com.OrderLine (3)
[test] Castor: Loading com.OrderLine (4)
[test] Castor: Loading com.OrderLine (5)
[test] Castor: Loading com.MyOrder (2)
.......order is: Second order
.......order Line Id is: 3
.......order Line Id is: 4
.......order Line Id is: 5
.....do commit


Then I just do query(), I got

[test] SELECT "ORDERS_S"."ID","ORDERS_S"."NAME","ORDERLINE_S"."ID" FROM
"ORDERLINE_S","ORDERS_S
" WHERE "ORDERS_S"."ID"="ORDERLINE_S"."ID"(+)
[test] Castor: Loading com.OrderLine (1)
[test] Castor: Loading com.MyOrder (1)
.......order is: First order
.......order Line Id is: 1
[test] Castor: Loading com.OrderLine (2)
[test] Castor: Loading com.MyOrder (2)
.......order is: Second order
.......order Line Id is: 1
.......order Line Id is: 2
.....do commit
[test] Castor: Creating com.OrderLine (null)
[test] Castor: Removing com.OrderLine (2)


here is my mapping.xml. The java code is also attached.

<!DOCTYPE databases PUBLIC "-//EXOLAB/Castor Mapping DTD Version 1.0//EN"
                           "http://castor.exolab.org/mapping.dtd";>
<mapping>
  <!--  Mapping for Order  -->
  <class name="com.MyOrder"
         identity="id">
    <description>Order definition</description>
    <map-to table="orders_s"/>
    <field name="id" type="integer">
      <sql name="id" type="integer" />
    </field>

    <field name="name" type="string">
      <sql name="name" type="char" />
    </field>

    <!-- Order has reference to OrderLine
         many OrderLines per Order  -->
    <field name="orderLines" type="com.OrderLine" required="true"
           lazy="false" collection="vector">
    </field>
  </class>

  <!--  Mapping for OrderLine  -->
  <class name="com.OrderLine" identity="id" depends="com.MyOrder"
                key-generator="MAX">
    <description>An order orderLine, any number of orderLines can belong to
                 the same order</description>
    <map-to table="orderline_s" />
    <field name="id" type="integer">
      <sql name="id" type="integer"/>
    </field>
  
    <field name="myOrder" type="com.MyOrder">
      <sql name="order_id"/>
    </field>
  </class>

</mapping>






----------------------------------------------------------------------- 
Ping Ding 



-----Original Message-----
From: Ned Wolpert [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, January 30, 2002 3:01 PM
To: [EMAIL PROTECTED]
Subject: Re: [castor-dev] JDO QueryResults question


Two issues with your mapping file:

1) You have laze="false", it should be lazy="false", or don't include it
   since that is the default setting.

2) you list the sql many-key in collections.  Try this:
    <!-- Order has reference to OrderLine
         many OrderLines per Order  -->
    <field name="orderLines" type="com.OrderLine" required="true"
           lazy="false" collection="vector"/>

instead.  Does it work?

<mapping>
  <!--  Mapping for Order  -->
  <class name="com.MyOrder"
         identity="id">
    <description>Order definition</description>
    <map-to table="orders_s"/>
    <field name="id" type="integer">
      <sql name="id" type="integer" />
    </field>

    <field name="name" type="string">
      <sql name="name" type="char" />
    </field>

    <!-- Order has reference to OrderLine
         many OrderLines per Order  -->
    <field name="orderLines" type="com.OrderLine" required="true"
           laze="false" collection="vector">
      <sql many-key="order_id"/>
    </field>
  </class>

  <!--  Mapping for OrderLine  -->
  <class name="com.OrderLine" identity="id" depends="com.MyOrder"
                key-generator="MAX">
    <description>An order orderLine, any number of orderLines can belong
to
                 the same order</description>
    <map-to table="orderline_s" />
    <field name="id" type="integer">
      <sql name="id" type="integer"/>
    </field>
  
    <field name="myOrder" type="com.MyOrder">
      <sql name="order_id"/>
    </field>
  </class>

</mapping>



=====
Virtually,   Ned Wolpert <[EMAIL PROTECTED]>

"Who watches the watchmen?"  -Juvenal, 120 AD (4e75)

__________________________________________________
Do You Yahoo!?
Great stuff seeking new owners in Yahoo! Auctions! 
http://auctions.yahoo.com

----------------------------------------------------------- 
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
        unsubscribe castor-dev

Attachment: JdoTest.java
Description: Binary data

Attachment: CreateTable.java
Description: Binary data

Reply via email to