Implement reached locations query (1.2.2 a)
This commit is contained in:
parent
7b2199ea99
commit
e715ce7f62
@ -2,10 +2,16 @@ package dst.ass1.jpa.dao.impl;
|
||||
|
||||
import dst.ass1.jpa.dao.ILocationDAO;
|
||||
import dst.ass1.jpa.model.ILocation;
|
||||
import dst.ass1.jpa.model.ITrip;
|
||||
import dst.ass1.jpa.model.impl.Location;
|
||||
|
||||
import javax.persistence.EntityManager;
|
||||
import javax.persistence.Query;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
import static dst.ass1.jpa.util.Constants.Q_REACHED_LOCATIONS;
|
||||
|
||||
public class LocationDAO extends GenericDAO<ILocation> implements ILocationDAO {
|
||||
public LocationDAO(EntityManager entityManager) {
|
||||
@ -14,6 +20,20 @@ public class LocationDAO extends GenericDAO<ILocation> implements ILocationDAO {
|
||||
|
||||
@Override
|
||||
public Collection<Long> findReachedLocationIds() {
|
||||
return null;
|
||||
Query query = super.entityManager.createNamedQuery(Q_REACHED_LOCATIONS);
|
||||
List<ITrip> trips = query.getResultList();
|
||||
List<Long> reachedLocationIds = new ArrayList<>();
|
||||
for (ITrip trip : trips) {
|
||||
// Add destinations
|
||||
if (!reachedLocationIds.contains(trip.getDestination().getLocationId()))
|
||||
reachedLocationIds.add(trip.getDestination().getLocationId());
|
||||
|
||||
// Add stops
|
||||
for (ILocation location : trip.getStops()) {
|
||||
if (!reachedLocationIds.contains(location.getLocationId()))
|
||||
reachedLocationIds.add(location.getLocationId());
|
||||
}
|
||||
}
|
||||
return reachedLocationIds;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,13 +1,17 @@
|
||||
package dst.ass1.jpa.model.impl;
|
||||
|
||||
import dst.ass1.jpa.model.ILocation;
|
||||
import dst.ass1.jpa.model.ITrip;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
|
||||
import static dst.ass1.jpa.util.Constants.Q_REACHED_LOCATIONS;
|
||||
|
||||
@Entity
|
||||
@NamedQuery(
|
||||
name = Q_REACHED_LOCATIONS,
|
||||
query = "SELECT t FROM Trip t " +
|
||||
"WHERE t.state = 6"
|
||||
)
|
||||
public class Location implements ILocation {
|
||||
@Id @GeneratedValue
|
||||
private Long id;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user