[hibernate-issues] [Hibernate-JIRA] Created: (HHH-3646) implement Criteria API querying of collection-of-component

David Mansfield (JIRA) noreply at atlassian.com
Thu Dec 11 17:51:38 EST 2008


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.patch

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