This one time, at band camp, Halder, Sisir(Cognizant) said:

HS>I have been trying to use Castor JDO for retrieving data from a select-based stored 
procedure. But I am getting
HS>the following exception:
HS>
HS>org.exolab.castor.jdo.PersistenceException: Complex type not accepted!
HS>     at org.exolab.castor.persist.ClassMolder.setIdentity(ClassMolder.java:2743)
HS>     at org.exolab.castor.persist.ClassMolder.load(ClassMolder.java:707)
HS>     at org.exolab.castor.persist.LockEngine.load(LockEngine.java:359)
HS>     at 
org.exolab.castor.persist.TransactionContext.load(TransactionContext.java:649)
HS>     at org.exolab.castor.persist.QueryResults.fetch(QueryResults.java:229)
HS>     at 
org.exolab.castor.jdo.engine.OQLQueryImpl$OQLEnumeration.hasMore(OQLQueryImpl.java:641)
HS>     at 
org.exolab.castor.jdo.engine.OQLQueryImpl$OQLEnumeration.hasMore(OQLQueryImpl.java:624)
HS>     at TestJDO.main(TestJDO.java:27)
HS>Exception in thread "main" 
HS>
HS>I searched throug the castor site, but did not get any possible solution for this. 
Would anybody please help me out on this error?
HS>Thanks in advance,
HS>Sisir
HS>
HS>
HS>Here is the code:
HS>
HS>==================== Main Class ========================
HS>JDO jdo = new JDO("mydb"); 
HS>jdo.setConfiguration("database.xml"); 
HS>
HS>// Open a connection to the database
HS>Database db = jdo.getDatabase();
HS>
HS>OQLQuery     oql;
HS>QueryResults results;
HS>
HS>db.begin(); 
HS>// Construct a new query and bind its parameters
HS>oql = db.getOQLQuery( "CALL sp_person AS PersonData" );
HS>//oql.bind( groupId );
HS>// Retrieve results and print each one
HS>results = oql.execute();
HS>System.out.println(results);
HS>
HS>while ( results.hasMore() ) {
HS>  PersonData person;
HS>
HS>  person = (PersonData) results.next();
HS>  System.out.println(person);
HS>  System.out.println(person.getName() + " : " + person.getAge());
HS>}
HS>// Explicitly close the QueryResults
HS>results.close();
HS>// Explicitly close the OQLQuery
HS>oql.close();
HS>// Explicitly commit transaction
HS>db.commit();
HS>db.close();
HS> 
HS>========================================================
HS>
HS>============ PersonData Object ===========================
HS>public class PersonData 
HS>{
HS>     private String name;
HS>     private String age;
HS>     private String pid;
HS>
HS>     public PersonData(){}
HS>     public PersonData(String sname, String nage){
HS>             name = sname;
HS>             age = nage;
HS>     }
HS>
HS>     public void setPid(String nid){
HS>             pid = nid;
HS>     }
HS>     public String getPid(){
HS>             return pid;
HS>     }
HS>     
HS>     public void setName(String sname){
HS>             name = sname;
HS>     }
HS>
HS>     public String getName(){
HS>             return name;
HS>     }
HS>
HS>
HS>     
HS>     public void setAge(String nage){
HS>             age = nage;
HS>     }
HS>
HS>     public String getAge(){
HS>             return age;
HS>     }
HS>}
HS>=================================================
HS>
HS>========= Mapping xml ==========================
HS><mapping>
HS>
HS>  <class name="PersonData" identity="pid">
HS>    <map-to table="Person" />
HS>    <field name="pid" type="string">
HS>      <sql name="pid" type="char"/>
HS>    </field>
HS>    <field name="name" type="string">
HS>      <sql name="name" type="char" />
HS>    </field>
HS>     <field name="age" type="string">
HS>      <sql name="age" type="char"/>
HS>    </field>
HS>  </class>
HS>
HS></mapping>
HS>==================================================
HS>
HS>======= Stored Procedure =========================
HS>create proc sp_person 
HS>as
HS>begin
HS>select pid, name, age from Person;
HS>end
HS>=================================================

I've never used stored procedures with Castor. There is an example of
their use in the JDO tests. See the following files:

    src/tests/jdo/StoredProcedure.java (this uses jdo.TestObject)
    src/tests/jdo/mapping.xml (search for jdo.TestObject)
    src/tests/jdo/oracle.sql (search for proc_check_permissions)

These files are available in a source download or in CVS. 

Bruce
-- 
perl -e 'print unpack("u30","<0G)[EMAIL PROTECTED]&5R\"F9E<G)E=\$\!F<FEI+F-O;0\`\`");'

The Castor Project 
http://www.castor.org/

Apache Geronimo 
http://incubator.apache.org/projects/geronimo.html

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

Reply via email to