I'm trying to run a query such as below - and get a null pointer exception,
I don't know how this can be as I check the attribute before the sql. Does
anyone have an idea why this would occur?

The attribute 'theRecording' is a Class Recording and is set in the xml file
below.


---------- Error ------------
java.lang.NullPointerException
        at
org.exolab.castor.jdo.drivers.JDBCQueryExpression$Join.<init>(JDBCQueryExpre
ssion.java:521)
        at
org.exolab.castor.jdo.drivers.JDBCQueryExpression.addInnerJoin(JDBCQueryExpr
ession.java:187)
        at
org.exolab.castor.jdo.oql.ParseTreeWalker.addJoinsForPathExpression(ParseTre
eWalker.java:916)
        at
org.exolab.castor.jdo.oql.ParseTreeWalker.getSQLExpr(ParseTreeWalker.java:11
51)
        at
org.exolab.castor.jdo.oql.ParseTreeWalker.getSQLExpr(ParseTreeWalker.java:10
70)
        at
org.exolab.castor.jdo.oql.ParseTreeWalker.getSQLExpr(ParseTreeWalker.java:10
70)
        at
org.exolab.castor.jdo.oql.ParseTreeWalker.addWhereClause(ParseTreeWalker.jav
a:973)
        at
org.exolab.castor.jdo.oql.ParseTreeWalker.createQueryExpression(ParseTreeWal
ker.java:812)
        at
org.exolab.castor.jdo.oql.ParseTreeWalker.<init>(ParseTreeWalker.java:135)
        at
org.exolab.castor.jdo.engine.OQLQueryImpl.create(OQLQueryImpl.java:274)
        at
org.exolab.castor.jdo.engine.DatabaseImpl.getOQLQuery(DatabaseImpl.java:439)
        at
com.vwfs.CustomerTrackedRecording.selectLikeRecordingArtist(CustomerTrackedR
ecording.java:185)
        at
com.vwfs.CustomerTrackedRecording.select(CustomerTrackedRecording.java:136)
        at com.vwfs.TestCastor.runTest2(TestCastor.java:136)
        at com.vwfs.TestCastor.main(TestCastor.java:34)
Exception in thread "main" 

---------- Query ------------
assert getRecording().getRecordingArtist().length() > 0 : "No artist set";
                
StringBuffer sb = new StringBuffer();
                
sb.append(sDefaultSQL);
sb.append(" WHERE theRecording.sRecordingArtist LIKE $1");
sb.append(" AND iTrackingTypeID = $2");
        
oql = database.getOQLQuery(sb.toString());

oql.bind("%" + getRecording().getRecordingArtist() + "%");
oql.bind(getTrackingType().getTrackingTypeID());
        
QueryResults results = oql.execute();

---------- XML ------------
<mapping>
        <class  name="com.vwfs.CustomerTrackedRecording"
identity="iTrackingTypeID iRecordingID iCustomerID">

        <description>com.vwfs.CustomerTrackedRecording</description>
        <map-to table="customer_tracked_recordings"
xml="customer_tracked_recordings" />

        <field name="iCustomerID" type="integer" get-method="getCustomerID"
set-method="setCustomerID">
                <sql name="customer_id" type="integer" />
                <xml name="customer_id" node="element" />
        </field>

        <field name="iRecordingID" type="integer"
get-method="getRecordingID" set-method="setRecordingID">
                <sql name="recording_id" type="integer" />
                <xml name="recording_id" node="element" />
        </field>

        <field name="iTrackingTypeID" type="integer"
get-method="getTrackingTypeID" set-method="setTrackingTypeID">
                <sql name="tracking_type_id" type="integer" />
                <xml name="tracking_type_id" node="element" />
        </field>

        <field name="iDateTracked" type="date" get-method="getDateTracked"
set-method="setDateTracked">
                <sql name="date_tracked" type="date" />
                <xml name="date_tracked" node="element" />
        </field>
        
        <field name="iVersion" type="integer" get-method="getVersion"
set-method="setVersion">
                <sql name="version" type="integer" />
                <xml name="version" node="element" />
        </field>
<!--    
        <field  name="theTrackingType" 
                        type="com.vwfs.CustomerTrackingType" 
                        get-method="getTrackingType"
                        set-method="setTrackingType"
                        required="true">
                <sql many-table="customer_tracking_types"/>     
        </field>
-->     
        <field  name="theRecording"
                        type="com.vwfs.Recording"
                        get-method="getRecording"
                        set-method="setRecording"
                        required="true">
                <sql many-table="recordings"/>          
        </field>
<!--            
        <field  name="theCustomer"
                        type="com.vwfs.Customer"
                        get-method="getCustomer"
                        set-method="setCustomer"
                        required="true">
                <sql many-table="customers"/>
        </field>   
-->             
     </class>
</mapping>



**********************************************************************************

The opinions expressed in this E-mail are those  of  the individual  and
not  necessarily  the  company.  This E-mail and  any files transmitted 
with it are confidential and solely for the use of the intended recipients

**********************************************************************************

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

Reply via email to