Hello,
[EL 2.1.1]
We’ve got three classes Vehicle, Tour and TourPosition. A Vehicle has zero, one or more Tours. A Tour has one none, one or more TourPositions (the stops)
So we declared
Class Vehicle {
@OneToMany(cascade={CascadeType.MERGE, CascadeType.REFRESH, CascadeType.REMOVE}, fetch=FetchType.LAZY, mappedBy="leadTruck")
@JoinFetch(value=JoinFetchType.OUTER) // Never remove this, or you will regret it - believe me you will.
private List<Tour> tours = new ArrayList<Tour>(113);
…
}
Class Tour {
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "tour")
@JoinFetch(value=JoinFetchType.OUTER)
private List<TourPosition> positions = new ArrayList<TourPosition> (113);
…
}
When I call em.refresh (vehicle) I would have expected that the tours and their positions are also refreshed, but they are not. The only SQL-Statement that I get is:
SELECT DISTINCT t1.vehicle_id, t1.measure_id, t1.jdo_version, …, t0.tour_id, t0.filled_up, t0.tour_text, …
FROM vehicle t1
LEFT OUTER JOIN tour t0 ON (t0.vehicle_id = t1.vehicle_id)
WHERE (t1.vehicle_id = ?)
So, at least the TourPositions are _not_ refreshed.
Is this a known issue/feature/bug?
Do I miss anything?
If it’s a known bug, is it fixed in 2.1.2?
Kind Regards and happy christmas, Michael