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.dao.ILocationDAO;
|
||||||
import dst.ass1.jpa.model.ILocation;
|
import dst.ass1.jpa.model.ILocation;
|
||||||
|
import dst.ass1.jpa.model.ITrip;
|
||||||
import dst.ass1.jpa.model.impl.Location;
|
import dst.ass1.jpa.model.impl.Location;
|
||||||
|
|
||||||
import javax.persistence.EntityManager;
|
import javax.persistence.EntityManager;
|
||||||
|
import javax.persistence.Query;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
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 class LocationDAO extends GenericDAO<ILocation> implements ILocationDAO {
|
||||||
public LocationDAO(EntityManager entityManager) {
|
public LocationDAO(EntityManager entityManager) {
|
||||||
@ -14,6 +20,20 @@ public class LocationDAO extends GenericDAO<ILocation> implements ILocationDAO {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Collection<Long> findReachedLocationIds() {
|
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;
|
package dst.ass1.jpa.model.impl;
|
||||||
|
|
||||||
import dst.ass1.jpa.model.ILocation;
|
import dst.ass1.jpa.model.ILocation;
|
||||||
import dst.ass1.jpa.model.ITrip;
|
|
||||||
|
|
||||||
import javax.persistence.*;
|
import javax.persistence.*;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Collection;
|
import static dst.ass1.jpa.util.Constants.Q_REACHED_LOCATIONS;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
|
@NamedQuery(
|
||||||
|
name = Q_REACHED_LOCATIONS,
|
||||||
|
query = "SELECT t FROM Trip t " +
|
||||||
|
"WHERE t.state = 6"
|
||||||
|
)
|
||||||
public class Location implements ILocation {
|
public class Location implements ILocation {
|
||||||
@Id @GeneratedValue
|
@Id @GeneratedValue
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user