[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [eclipselink-users] cascade=refresh does not work like expected

Are you actually seeing that the data is not refreshed in your application, or are you just examining the SQL? (i.e. is the app not refreshing, or just not JOIN FETCHING on the refresh?)


Michael Simons wrote:

[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")


*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


eclipselink-users mailing list