[hibernate-dev] resend: RFC: implement criteria API query of collection-of-component and collection-of-value
David Mansfield
hibernate at dm.cobite.com
Mon Dec 29 13:34:12 EST 2008
Hi Steve,
Thanks for the reply.
Is there a general roadmap to these changes somewhere so I can get a
gist of what's going on there? Also a general timeframe for this stuff
to reach a stable release? I'm definitely interested to take a
look-see.
Thanks,
David
On Mon, 2008-12-29 at 09:44 -0600, Steve Ebersole wrote:
> I am in the midst of significant changes which will affect the way
> criteria queries are interpreted/translated. This is all happening on a
> branch named SQL_GEN_REDESIGN. If you are interested in helping that
> effort along or making sure this particular issue is addressed by those
> changes then we can chat about that. For the former, perhaps we could
> chat on IRC (#hibernate-dev on freenode), though email is ok too. For
> that latter, though, we'd have to wait for this work to be done; you can
> track it from JIRA :
> http://opensource.atlassian.com/projects/hibernate/secure/IssueNavigator.jspa?reset=true&mode=hide&pid=10031&fixfor=10690&status=1&status=3&status=4&sorter/field=issuekey&sorter/order=DESC
>
> and:
> http://opensource.atlassian.com/projects/hibernate/browse/HHH-2407
>
>
>
> -
>
> Steve Ebersole
> Project Lead
> http://hibernate.org
> steve at hibernate.org
>
> Principal Software Engineer
> JBoss, a division of Red Hat
> http://jboss.com
> http://redhat.com
> steve.ebersole at jboss.com
> steve.ebersole at redhat.com
>
>
> On Mon, 2008-12-22 at 15:49 -0500, David Mansfield wrote:
> > [ I sent this about a week ago and haven't heard anything from anyone.
> > Can someone let me know if I'm barking up the right tree? ]
> >
> > Hi All,
> >
> > The attached patch, which is not quite ready for inclusion, but works
> > completely under light testing, implements the functionality
> > missing from the criteria API for querying collections that are not
> > collection-of-entity. (ie. fix the causes of 'collection is not an
> > association', (i.e first issue on 'Advanced Problems' faq)).
> >
> > This needs some feedback and review. I have created issue
> > http://opensource.atlassian.com/projects/hibernate/browse/HHH-3646 to
> > track the issue, but I've not yet received any feedback.
> >
> > Implementation notes:
> >
> > The main area of change is to the CriteriaQueryTranslator class. In
> > this class, we replace the 'criteriaEntityNames' map of Criteria =>
> > String with two maps, one mapping Criteria => CriteriaInfoProvider and
> > one mapping String (name) => CriteriaInfoProvider.
> >
> > The new class, CriteriaInfoProvider is an interface/abstraction to the
> > functionality needed by the various entry points into the translator,
> > such as to retrieve the 'spaces', get the PropertyMapping etc.
> >
> > There are 3 concrete implementations of CriteriaInfoProvider:
> >
> > * EntityCriteriaInfoProvider: this is the functionality that was always
> > present in the translator, ie. use getEntityPersister() etc.
> >
> > * ComponentCollectionInfoProvider: this is the functionality that
> > extends the api for collection-of-component. In this class, we have to
> > provide the collection 'spaces' and the 'collection persister', but we
> > also have to look in detail at the ComponentType to be able to resolve
> > property references off of the component.
> >
> > * ScalarCollectionInfoProvider: this is the functionality the provides
> > the api for collection-of-value. The main thing here is we use the
> > SessionFactoryHelper (part of the HQL tree) to get the
> > CollectionPropertyMapping object for mapping the 'elements','indices'
> > etc. properties. There's at least one 'I have no idea what to put here'
> > method in this class.
> >
> > There is substantial cruft in the patch for debugging, which will not be
> > part of the final implementation.
> >
> > There is a crude hack in CriteriaJoinWalker which needs some expert
> > advice: the existing implementation was looking at some mysterious
> > 'consumesEntityAlias' boolean, but I need to force the code to lookup
> > the alias from the translator every time, or else it bypasses the alias
> > for the collection itself, and the SQL aliases are wrong.
> >
> > There is also a completely separate bugfix wedged in here, which needs
> > to be extracted to its own issue/patch. The changes to JoinWalker are
> > necessary and correct: if the last association will not generate any
> > selectFragment, then the implementation adds an extraneous ", " to the
> > generated string.
> >
> > Looking forward to your feedback and working together to get this into
> > the tree. Need info about test cases to create, documentation etc.
> >
> > Thanks,
> > David Mansfield
> > Cobite, INC.
> >
> >
> >
> >
> > _______________________________________________
> > hibernate-dev mailing list
> > hibernate-dev at lists.jboss.org
> > https://lists.jboss.org/mailman/listinfo/hibernate-dev
>
More information about the hibernate-dev
mailing list