Hi Jon,

        I'd made some changes in the SQLEngine.java code.I'm attaching the
code with this message,try it,it should solve the problem.

Arun
----- Original Message -----
From: "Jon Ferguson" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, September 20, 2002 1:21 PM
Subject: Re: [castor-dev] RE: CALL SQL and One to Many relationships problem
(fwd)


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

Reply via email to