Win a copy of Android Programming: The Big Nerd Ranch Guide this week in the Android forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic

Querying on Child Objects  RSS feed

 
Salil Surendran
Ranch Hand
Posts: 45
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hello Friends,
I have a problem. I have a parent class named 'Trade' and each trade and many child objects named 'TradeEvents'. I want to use a Criteria object and create a query such that I can add restrictions on both objects. For eg. I want to get trades who has status as 'O' and get it's corresponding trade events that has notional greater than 100.

so i use a critiia like this:

Criteria criteria = HibernateSessionFactory.getSession().createCriteria(Trades.class);
criteria.add(Restrictions.eq("status","O"));
criteria.createCriteria("tradeEvents").add(Restrictions.lt("notional", new Double(100)));
List list = criteria.list();


However, when I execute the criteria it returns me trades that are open which is fine but the child object(trade events) that I obtain has all the trade events belonging to that trade even though it's notional is greater than 100. So the child objects are not being restricted. How can I achieve this?
 
Susanta Chatterjee
Ranch Hand
Posts: 102
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I am not an expert, I think it should look like following:
 
Salil Surendran
Ranch Hand
Posts: 45
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Your code is correct but it produces the same result. In you code you also need to add an alias to tradeEvents to make it work.
 
It is sorta covered in the JavaRanch Style Guide.
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!