• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Querying on Child Objects

 
Salil Surendran
Ranch Hand
Posts: 44
  • 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: 44
  • 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.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic