OJB Reference Descriptor 1:0 relationship? Should I set auto-retrieve to false?

Posted by godzillasdm on Stack Overflow See other posts from Stack Overflow or by godzillasdm
Published on 2010-04-24T00:31:24Z Indexed on 2010/04/24 0:33 UTC
Read the original article Hit count: 564

Hi, I am having an issue while using Apache OJB with Spring 2 inside my web app.

I'm using OJB reference-descriptor with 2 foreign key properties. I have an object A (parent) and object B (referenced object). The thing is, for an object A, there may or may not be an object B.

In the case where there is no object B to go with Object A, the object B seems to be instantiated (through Spring?) anyways. However, I am unable to access object B's members.

Whenever I test if Object B == null, it always returns false even though there is no matching value in the database.

Since this Object is never null, I figured I can test the object's member like so:

if( objectb.getDocumentNumber == null) { return false; }

However, I get an exception in the jsp:

javax.servlet.jsp.el.ELException: An error occurred while getting property
"documentNumber" from an instance class
org.sample.pojo.Objectb$$EnhancerByCGLIB$$78022a2

and this exception in the debugger when it's creating the objectB:

com.sun.jdi.InvocationException occurred invoking method.

I am guessing that the reference-descriptor must be a 1:1+ relationship, instead of a 1:0+ relationship. I was wondering if I should set the property 'auto-retrieve' to false, and then use the PersistenceBroker.retrieveAllReferences(Object obj); method as directed. However, this method's return value is 'void', so I am guessing that Spring somehow creates, and sets the reference class for me. (Returning me back to the same issue I'm having.)

I will need a way to test whether the reference object exists first. If not, don't call this retrieveAllReferences method, but I don't see how.

Am I going about this all wrong? Does reference-descriptor not allow 1:0 relations? Any work around to my problem?

Your suggestions are greatly appreciated!

© Stack Overflow or respective owner

Related posts about ojb

Related posts about spring