Hey, Bruce, Sudhir, Arun,

Did this get resolved?.. I just re-ran a test case I wrote using the test
harness to discover this is the same problem I've been
having with pass through SQL... it fails on line 424 of the SQLEngine
createCall with a NullPointerException..

I'm running on PostgreSql.

Here's the test case I'm using which runs in the test harness - under the
Postgres tests.

Cheers,
Jon

----- Original Message -----
From: "Bruce Snyder" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, September 17, 2002 9:36 PM
Subject: [castor-dev] RE: CALL SQL and One to Many relationships problem
(fwd)


> ---------- Forwarded message ----------
> Date: Sat, 7 Sep 2002 10:55:43 -0700
> From: Sudhir Bhojwani <[EMAIL PROTECTED]>
> To: Arun Sudhakaran <[EMAIL PROTECTED]>, [EMAIL PROTECTED]
> Subject: RE: CALL SQL and One to Many relationships problem
>
> I don't seem to have the same problem as you. I just tried a sample.
> Obviosuly we have a problem but the
> location in your case is SQLEngine.createCall...which works fine for me.
> However, if you can send me the line
> number in SQLEngine.createCall, it will be helpful. I guess you should try
> to run a test case outside any app server
> domain. Because, I have made quite a few changes in the code I am using so
> can't tell you without the li9ne number information.
>
> However, there is another problem with relationship. Now the reason:
>
> Customer can have 1..n Order defined in the mapping file as:
>     <field name="orders" type="Orders" required="false"
> collection="arraylist">
>      <sql  many-key="cust_id" />
>     </field>
>
> So, what Castor expects for such relations is to at least load all the
> related Order IDs when
> loading a Customer. OQL like "select c from Customer c where c.custId=?"
get
> converted into following SQL:
> "select Customer.cust_name, Order.order_id from Customer, Order where
> Order.cust_id=Customer.cust_id AND
>   Customer.cust_id=?"
>
> Essenitally all the Order IDs for a Customer must be loaded with a given
> Customer.
> So, writing a query like "CALL SQL select * from CUSTOMER AS Customer"
will
> throw a SQLException.
>
> If you are using relationships be careful when you use CALL SQL...as you
can
> see.
>
> cheers
> sudhir
>
>
>
> -----Original Message-----
> From: Arun Sudhakaran [mailto:[EMAIL PROTECTED]]
> Sent: Friday, September 06, 2002 11:11 PM
> To: [EMAIL PROTECTED]; [EMAIL PROTECTED]
> Subject: CALL SQL and One to Many relationships problem
>
>
> Hi Sudhir,Bruce
>
>
>     I'm having a slight problem using CALL SQL with 1-N relationships. I
> have a Customer having 1-n relation with orders. im attaching the mapping
> file also.
>
> <!--  Mapping for Customer  Context  -->
> <class name="Customer" identity="custId" key-generator="MAX">
> <description>Customer</description>
> <map-to table="Customer" />
>     <field name="custId" type="long" >
>      <sql name="cust_id" type="bigint"/>
>     </field>
>     <field name="name" type="string">
>      <sql name="cust_name" type="char"/>
>     </field>
>     <field name="age" type="integer">
>      <sql name="age" type="integer"/>
>     </field>
>     <field name="orders" type="Orders" required="false"
> collection="arraylist">
>      <sql  many-key="cust_id" />
>     </field><!---->
>     </class>
>
>
> <!--  Mapping for Order -->
> <class name="Orders" identity="Id" key-generator="MAX">
> <description>Order</description>
> <map-to table="orders" />
>       <field name= "Id" type ="integer">
>          <sql name="order_id" type="integer"/>
>       </field>
>       <field name= "name" type ="string">
>       <sql name="name" type="varchar" />
>       </field>
>       <field name= "customer" type ="Customer" >
>       <sql name="cust_id" />
>       </field>
> </class>
>
> If i use CALL SQL SELECT * FROM CUSTOMER AS Customer i get the following
> exception
>
> [test] SQL SELECT * FROM CUSTOMER
> [test] java.lang.NullPointerException
> [test] java.lang.NullPointerException
> [test]  at org.exolab.castor.jdo.engine.SQLEngine.createCall(Unknown
Source)
> [test]  at org.exolab.castor.jdo.engine.OQLQueryImpl.execute(Unknown
Source)
> [test]  at org.exolab.castor.jdo.engine.OQLQueryImpl.execute(Unknown
Source)
> [test]  at org.exolab.castor.jdo.engine.OQLQueryImpl.execute(Unknown
Source)
> [test]  at Test.run(Test.java:97)
> [test]  at Test.main(Test.java:58)
>
> If i comment out the orders field from Customer mapping it works without a
> hitch. The program works fine when i use OQL such as Call a from Customer
a.
> Could you please help me with this. we are in a sort of tight situation.
>
> Thanks in advance
>
> Arun S
>
> -----------------------------------------------------------
> If you wish to unsubscribe from this mailing, send mail to
> [EMAIL PROTECTED] with a subject of:
> unsubscribe castor-dev
>

Attachment: test.jar
Description: Binary data

Reply via email to