Bruce

I tried your suggestion, moving the mapping above ListingInfo, no good same exception? I believe it is due to the fact that OpenHouse class depends on ListingInfo. If I remove this then I can query on the OpenHouse class.

<class name="com.goodtobehome.core.data.OpenHouse" identity="id" depends="com.goodtobehome.core.data.ListingInfo" key-generator="IDENTITY">

Is there anyway to use the depends attribute but also be able to query against the OpenHouse objects in the database? Through OQL that is?

TIA
Mike


Bruce Snyder wrote:

On Mon, 21 Mar 2005 08:54:02 -0500, Mike Wannamaker
<[EMAIL PROTECTED]> wrote:

Mike,

Please see my comments inline below:



I have the included mapping and schema file.  I have a ListingInfo that
contains OpenHouse array.  I want to be able to query against the OpenHouse
array.  I want to get all ListingInfo objects that have OpenHouses.startTime
< a certain date.

I tried doing the following:

"SELECT o FROM com.goodtobehome.core.data.ListingInfo o WHERE
o.openHouses.startTime < $1"

I didn't capture stack trace but it gave me an error complaining about
openHouses.startTime, no field or somehting like that?

Then I tried:

"SELECT o FROM com.goodtobehome.core.data.OpenHouse o WHERE o.startTime <
$1"

This gives me this exception:
Mar 21, 2005 1:03:30 AM [EXCEP] CastorHelper: query(SELECT o FROM
com.goodtobehome.core.data.OpenHouse o WHERE o.startTime < $1): Could not
find mapping for class com.goodtobehome.core.data.OpenHouse
org.exolab.castor.jdo.QueryException: Could not find mapping for class
com.goodtobehome.core.data.OpenHouse
   at
org.exolab.castor.jdo.oql.ParseTreeWalker.checkFromPart(ParseTreeWalker.java
:309)
   at
org.exolab.castor.jdo.oql.ParseTreeWalker.checkErrors(ParseTreeWalker.java:2
23)
   at
org.exolab.castor.jdo.oql.ParseTreeWalker.<init>(ParseTreeWalker.java:137)
   at
org.exolab.castor.jdo.engine.OQLQueryImpl.create(OQLQueryImpl.java:248)
   at
org.exolab.castor.jdo.engine.DatabaseImpl.getOQLQuery(DatabaseImpl.java:465)
   at com.goodtobehome.util.CastorHelper.query(CastorHelper.java:250)
   at com.goodtobehome.util.CastorHelper.query(CastorHelper.java:236)
   at
com.goodtobehome.core.handlers.ListingsSearchHandler.submitSearch(ListingsSe
archHandler.java:59)
   at
com.goodtobehome.core.handlers.ListingsSearchHandlerTest.testOpenHouseListin
gsSearch(ListingsSearchHandlerTest.java:44)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)
   at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
   at java.lang.reflect.Method.invoke(Method.java:324)

How can I get this query to work?



In my experience, the error is usually an issue with the order of the mapping descriptor. Move the entire <class /> element up above the ListInfo <class /> element and see if that works.



Second Question, how could I store the Credential object of UserAccount into
the same table as UserAccount? Right now they are in separate tables.



You should be able to achieve this by just mapping the Credential object to a subset of the columns in the useraccts table. Are you planning on moving the username and pwd columns into the useraccts table? Take a look a the following tip:

http://www.castor.org/tips-tricks.html#JDO:-Views-of-Same-Object

Bruce




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

Reply via email to