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 >
test.jar
Description: Binary data
