Hibernate: unexpected queries in parent/child relationship
Joined: Apr 26, 2004
Could someone point out what I'm doing wrong? I have a parent/child relationship between two objects, Customer and Order - a customer can have many orders. The tables are setup the same way and the two join on a pk/fk field called 'cust_id'.
So...it looks like this:
Customer.Orders = List<Order> (mapped as a bag, like so):
I'm trying to get a list of customers between an Order sent-date range. The customers I get back are ones that have orders within the date range but when I try to view the list of orders...they're not filtered...I'm getting every order ever entered by that customer...I would have expected the orders to be filtered as well...but they're not...and that's obviously because of the queries being generated.
My HQL looks like this:
...which generates a query that looks like this:
However...when I list the orders for each customer...like so:
It generates a query that looks like this:
...bingo...the Order.SentDate isn't filtered for the orders.
I know I'm missing something simple...but I've been staring at it for so long it's eluding me...can someone point out a simple work-around?
Joined: Aug 24, 2005
This is by design.
The order date criteria is just used to filter the Customer objects themselves.
Once you have a Customer, calling getOrders() will retrieve all orders for that Customer. The collections inside the Customer objects are not filtered based on your original query criteria.