[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-3646) implement Criteria API querying of collection-of-component
Emmanuel Bernard (JIRA)
noreply at atlassian.com
Mon Nov 23 11:48:08 EST 2009
[ http://opensource.atlassian.com/projects/hibernate/browse/HHH-3646?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=34730#action_34730 ]
Emmanuel Bernard commented on HHH-3646:
---------------------------------------
would be nice to get the unit tests too with the patch :)
> implement Criteria API querying of collection-of-component
> ----------------------------------------------------------
>
> Key: HHH-3646
> URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-3646
> Project: Hibernate Core
> Issue Type: Patch
> Components: query-criteria
> Affects Versions: 3.2.6
> Environment: hibernate 3.2.6, tested on linux 64-bit openjdk 1.6 (jdk1.5 for compiling). mapping created under annotations 3.3.1ga
> Reporter: David Mansfield
> Attachments: hib-core-query-collection-of-elements-3_2_6-ver2.patch, hib-core-query-collection-of-elements-3_2_6.patch, hib-core-query-collection-of-elements-3_3_1-ver5.patch
>
> Original Estimate: 1 day
> Remaining Estimate: 1 day
>
> the attached patch implements a first cut, extremely rough, yet working extension of the CriteriaQueryTranslator class to allow for querying of properties of components inside a collection, or querying properties of associated elements of components inside a collection. eg for
> * code is lightly tested, this example is for illustrative purposes only
> * i use annotations, so my example is expressed in those terms, and i've only tested with mappings generated via annotations, however, the modifications only apply to the core.
> @Entity
> class Order {
> @Id
> String id;
> @CollectionOfElements
> Set<OrderLineItem> lineItems;
> }
> @Embeddable
> class OrderLineItem {
> @ManyToOne
> Product product;
> Integer quantity;
> }
> @Entity
> class Product {
> String name;
> }
> Then we can now do:
> Criteria c = session.createCriteria(Order.class)
> .createCriteria("lineItems")
> .add(Restrictions.gt("quantity", new Integer(1))
> .list();
> or
> Criteria c = session.createCriteria(Order.class)
> .createCriteria("lineItems")
> .createCriteria("product")
> .add(Restrictions.like("name", "cake%")
> .list();
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the hibernate-issues
mailing list