So there are some more details on my problem below... I continue to struggle with getting lazy loading to work at all. I didn't see any examples on how to do it, so I've been making best guesses. Thanks again for your time and help!

 

classes:

public class Person extends PersistentItem {
    private String email = null;   
    private Vector clicks = new Vector();
   
    public Person() {
        super();
    }
   
    public Person(String e) {
        setEmail(e);
    }
   
    public void setEmail(String e) {
        email = e;
    }    
   
    public void addClick(Click i) {
        if ( i != null ) {
            clicks.add(i);
            i.setPerson(this);
 &nb! sp;      }
    }

        
    public void setClicks(Collection c) {
        clicks = new Vector(c);
    }  
   
    public Collection getClicks() {
        return clicks;
    }
   
    public String getEmail() {
        return email;
    }
   
}

public class Interest extends PersistentItem implements Cloneable {
    private Visitor visitor;
   
    public Interest() {
    }
   
    public void setVisitor(Visitor v) {
        this.visitor = v;
    }   
   
    public Visitor getVisitor() {
        return this.visitor;
    }
   
}

 

The mapping:

<mapping>
 <!-- KEY GENERATORS --> 
 <key-generator name="SEQUENCE">
      <param name="sequence" value="{0}_seq"/>
   </key-generator>
       
 <class name="Person" identity="ID" key-generator="SEQUENCE" access="shared">
  <cache-type type="none" />
                <description>Person</description>
      <map-to table="Person" xml="Person"/>
      <field name="ID" type="integer">
   <sql name="ID" type="integer"/>
   <xml node="attribute"/>
      </field>
  <field name="Email" type="string">
   <sql name="Email" type="varchar"/>
! !    <xml name="Email" node="element"/>
  </field>
      
      <field name="Clicks" type="Click" lazy="true" collection="collection" required="false">
   <sql many-key="PersonID" />
   <xml name="Clicks" node="element" />
      </field>
      
 </class>       


 <class name="Click" identity="ID" key-generator="SEQUENCE" access="shared">
                <cache-type type="none"/>
  <description>Click</description>
      <map-to table="Click" xml="Click"/>
      <field name="ID" type="integer">
   <sql name="ID" type="integer"/>
   <xml node="attribute"/>
      </field>
      <field name="Person" type="Person">
   <sql name="PersonID" />
   <xml name="Person" node="element" />
      </field>
 </class>
       
</mapping>


the log output:

[Castor] SELECT "Visitor"."ID","Visitor"."Email","Interest"."ID" FROM "Visitor" LEFT OUTER JOIN "Interest" ON "Visitor".
"ID"="Interest"."VisitorID" WHERE ("Visitor"."ID" = 89)
[Castor] Castor: Loading Click (349)
[Castor] Castor: Loading Click (341)
[Castor] Castor: Loading Click (340)
[Castor] Castor: Loading Click (339)
[Castor] Castor: Loading Click (338)
[Castor] Castor: Loading Click (337)
[Castor] Castor: Loading Click (336)
[Castor] Castor: Loading Click (335)
[Castor] Castor: Loading Person (89)
Wed Jan 30 16:16:22 PST 2002 [CastorTransaction] commit()
java.lang.NullPointerException
        at org.exolab.castor.persist.TransactionContext.markCreate(TransactionContext.java:695)
        at org.exolab.castor.persist.ClassMolder.preStore(ClassMolder.java:1324)
        at org.exolab.castor.persist.LockEngine.preStore(Loc! kEngine.java:723)
        at org.exolab.castor.persist.TransactionContext.prepare(TransactionContext.java:1403)
        at org.exolab.castor.jdo.engine.DatabaseImpl.commit(DatabaseImpl.java:507)
        at CastorTransaction.commit(CastorTransaction.java:32)
        at rest.doGet(LazyTest.java:44)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:195)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:309)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:336)
        at com.evermind._bxb._crd(.:501)
        at com.evermind._bxb._ukb(.:170)
        at co! m.evermind._cn._uab(.:576)
        at com.evermind._cn._fm(.:189)
        at com.evermind._bs.run(.:62)

 

  Bruce Snyder <[EMAIL PROTECTED]> wrote:

This one time, at band camp, Jeff Bagens said:

JB >
JB >
JB >
JB >


Jeff,

It looks like the mapping has changed since you last posted it -
only in object name possibly. Could you post the client code that
is making use of your object model as well as the two objects
involved in this set of relations?

Bruce
--

perl -e 'print unpack("u30","<0G)U8V4\@4VYY9&5R\"F9E



Do You Yahoo!?
Yahoo! Auctions Great stuff seeking new owners! Bid now!

Reply via email to