Sorry, i didn't mean i was confused by your mail, i mean i am in the same
boat!
Are you using ODMG or PB or JDO?
I believe that using PB (and the example i gave before) you can do somthing
like:
Criteria crit = new Criteria();
crit.addLike("department", "blah");
crit.addLike("employees.status", "fulltime")
Query qry = new QueryByCriteria(Manager.class, crit);
Could you use somthing like this to query on the collection?
Build an or criteria with things like:
crit.addEquals("employees.oid", id1)
crit.addEquals("employees.oid", id2)
crit.addEquals("employees.oid", id3)
How would you do this same query using ODMG? or even, can you do this with
ODMG?
I tried things like
"where department=$1 and employee.status=$2"
but it didnt work.
Daniel.
----- Original Message -----
From: "Guido Beutler" <[EMAIL PROTECTED]>
To: "OJB Users List" <[EMAIL PROTECTED]>
Sent: Friday, December 19, 2003 4:07 PM
Subject: Re: How to pass dynamic attribute values to
QueryCustomizerImplementations
> Hello,
>
> for a more detailed description pleas look at my other mail.
> Daniel Perry wrote:
>
> >I am still confused by this too.
> >
> >
> sorry!
>
> >Say i have a 1:n mapping between Manager and Employee.
> >I want to query using ODMG to say
> >"select all Managers (and their Employees) where Manager.department=blah
AND
> >Employee.status=fulltime"
> >
> >
> >
> OK then you get a filled collection with all fulltime Employee in there.
>
> >I did this using a query customizer for static queries (eg
> >Employee.deleted=false).
> >I never worked out how to do dynamicly though. My (bodge) solution was
to
> >load the Managers with all their Employees, and then remove any Employees
> >from the collection that didnt match my criteria.
> >
> >
> You're right but lets say youre loading >17000 Employees, this may tke a
> while ;-)
> I already know that I would need only 1 to 5 so removing them would work
> but not really is a solution (in my case).
>
> >I can see an obvious problem with this querying - if you materialise a
> >Manager, all Employees relating to it should be materialised, as say for
> >example you do a markDirty on the Manager object matching the above
> >criteria, all the Employees not matching status=fulltime would not be in
the
> >collection when it's written, so would be lost.
> >
> >Still, for read only (eg web interfaces like JSP using taglibs) it would
be
> >very useful to be able to do these queries.
> >
> >
> Yes, I'm only doing selects and for performance of my application this
> would be _very_ usefull.
> For me OJB needs >30s to build the collection
>
> best regards,
>
> Gudio
>
> >Daniel.
> >
> >----- Original Message -----
> >From: "Brian McCallister" <[EMAIL PROTECTED]>
> >To: "OJB Users List" <[EMAIL PROTECTED]>
> >Sent: Friday, December 19, 2003 3:27 PM
> >Subject: Re: How to pass dynamic attribute values to
> >QueryCustomizerImplementations
> >
> >
> >
> >
> >>Saw your original message and am thinking about this one.
> >>
> >>Any chance you can post specifics?
> >>
> >>Does value need to change while running, or is it just dependent upon
> >>something at load time?
> >>
> >>-Brian
> >>
> >>On Fri, 2003-12-19 at 10:09, Guido Beutler wrote:
> >>
> >>
> >>>Hello,
> >>>
> >>>This is a repost with a better subject, hoping to get a hint.
> >>>
> >>>I build a custom QueryCustomizer implementation to restrict the
> >>>retrieved values of a collection to a known primary key.
> >>>I saw that I could add attributes at the deployment descriptor but the
> >>>value of the
> >>>primary key changes dynamically during my application.
> >>>
> >>>My sample:
> >>>
> >>> public Query customizeQuery(Object anObject, PersistenceBroker
> >>>aBroker, CollectionDescriptor aCod, QueryByCriteria aQuery)
> >>> {
> >>> aQuery.getCriteria().addEqualTo("field","value");
> >>> return aQuery;
> >>> }
> >>>
> >>>The "value" should change dynamically. Is there really no way to pass
> >>>additional dynamic arguments to the implementation?
> >>>IA Simple workaround is to use System properties but of course this
just
> >>>a hack for a test case. It's not thread save, it's slow
> >>>etc.
> >>>I found no way to find out where the current query came from to build
> >>>sonething like a callback. Extending the Query implementation by
> >>>a user object would be a solution buit this modification shouldn't be
> >>>done without consulting the OJB crew.
> >>>Implementing a user object might be difficult because the querry which
> >>>is passed to the QueryCustomizer is generated by OJB and is
> >>>not directly coming from my code. So a modified Query would mean that
> >>>the user object must be passed around by OJB Broker.
> >>>I still think that I miss something.
> >>>
> >>>best regards,
> >>>
> >>>Guido
> >>>
> >>>
> >>>---------------------------------------------------------------------
> >>>To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>>For additional commands, e-mail: [EMAIL PROTECTED]
> >>>
> >>>
> >>>
> >>>
> >>
> >>---------------------------------------------------------------------
> >>To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>For additional commands, e-mail: [EMAIL PROTECTED]
> >>
> >>
> >>
> >>
> >
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: [EMAIL PROTECTED]
> >For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
> >
> >
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]