Sunday, 18 August 2013

hibernate narrow down lazy loaded collection

hibernate narrow down lazy loaded collection

I have 2 classes:
public class Car {
private Integer id;
private List<CarOrder> carOrders;
}
public class CarOrder {
private Car car;
private Long endDate;
private Long id;
}
and hibernate mapping
<class entity-name="car" name="test.es.Car" table="CARS" schema="ARK_ES">
<cache usage="read-write"/>
<id name="id" column="ID">
<generator class="sequence">
<param name="sequence">ES_SEQUENCE</param>
</generator>
</id>
<bag name="carOrders" inverse="true" lazy="true">
<cache usage="read-write"/>
<key column="CAR_ID"/>
<one-to-many not-found="ignore" entity-name="carOrder"/>
</bag>
</class>
<class entity-name="carOrder" name="temp.es.CarOrder"
table="CAR_ORDERS" schema="ARK_ES">
<cache usage="read-write"/>
<id name="id" column="ID">
<generator class="sequence">
<param name="sequence">ES_ORDER_SEQUENCE</param>
</generator>
</id>
<property name="endDate" column="END_DATE"/>
<many-to-one name="car" entity-name="car">
<column name="CAR_ID"/>
</many-to-one>
</class>
I need to load all cars and car orders with endDate greater than some
value. Also i need to cache the query for car order. i tried to use
hibernate filters, but they are not cached. Is it possible to achieve this
using hibernate api without custom queries? I forgot to mention that car
can have no orders, but it must be in result.
Thanks.

No comments:

Post a Comment