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
JdoTest.java
Description: Binary data
CreateTable.java
Description: Binary data
