Add DAO implementations

This commit is contained in:
Tobias Eidelpes 2021-04-02 17:35:16 +02:00
parent a0b099cbc3
commit 0f8a8d5f9f
11 changed files with 192 additions and 18 deletions

View File

@ -20,55 +20,46 @@ public class DAOFactory implements IDAOFactory {
@Override @Override
public IDriverDAO createDriverDAO() { public IDriverDAO createDriverDAO() {
// TODO return new DriverDAO(em);
return null;
} }
@Override @Override
public IEmploymentDAO createEmploymentDAO() { public IEmploymentDAO createEmploymentDAO() {
// TODO return new EmploymentDAO(em);
return null;
} }
@Override @Override
public ILocationDAO createLocationDAO() { public ILocationDAO createLocationDAO() {
// TODO return new LocationDAO(em);
return null;
} }
@Override @Override
public IMatchDAO createMatchDAO() { public IMatchDAO createMatchDAO() {
// TODO return new MatchDAO(em);
return null;
} }
@Override @Override
public IOrganizationDAO createOrganizationDAO() { public IOrganizationDAO createOrganizationDAO() {
// TODO return new OrganizationDAO(em);
return null;
} }
@Override @Override
public IRiderDAO createRiderDAO() { public IRiderDAO createRiderDAO() {
// TODO return new RiderDAO(em);
return null;
} }
@Override @Override
public ITripDAO createTripDAO() { public ITripDAO createTripDAO() {
// TODO return new TripDAO(em);
return null;
} }
@Override @Override
public ITripInfoDAO createTripInfoDAO() { public ITripInfoDAO createTripInfoDAO() {
// TODO return new TripInfoDAO(em);
return null;
} }
@Override @Override
public IVehicleDAO createVehicleDAO() { public IVehicleDAO createVehicleDAO() {
// TODO return new VehicleDAO(em);
return null;
} }
} }

View File

@ -0,0 +1,19 @@
package dst.ass1.jpa.dao.impl;
import dst.ass1.jpa.dao.IDriverDAO;
import dst.ass1.jpa.model.IDriver;
import dst.ass1.jpa.model.impl.Driver;
import javax.persistence.EntityManager;
import java.util.Collection;
public class DriverDAO extends GenericDAO<IDriver> implements IDriverDAO {
public DriverDAO(EntityManager entityManager) {
super(entityManager, Driver.class);
}
@Override
public Collection<IDriver> findActiveInMultipleOrganizationsDrivers(Long numberOfOrganizations) {
return null;
}
}

View File

@ -0,0 +1,13 @@
package dst.ass1.jpa.dao.impl;
import dst.ass1.jpa.dao.IEmploymentDAO;
import dst.ass1.jpa.model.IEmployment;
import dst.ass1.jpa.model.impl.Employment;
import javax.persistence.EntityManager;
public class EmploymentDAO extends GenericDAO<IEmployment> implements IEmploymentDAO {
public EmploymentDAO(EntityManager entityManager) {
super(entityManager, Employment.class);
}
}

View File

@ -0,0 +1,30 @@
package dst.ass1.jpa.dao.impl;
import javax.persistence.EntityManager;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import java.util.List;
public class GenericDAO<T> implements dst.ass1.jpa.dao.GenericDAO<T> {
private final EntityManager entityManager;
private final Class aClass;
public GenericDAO(EntityManager entityManager, Class aClass) {
this.entityManager = entityManager;
this.aClass = aClass;
}
@Override
public T findById(Long id) {
return (T) entityManager.find(aClass, id);
}
@Override
public List<T> findAll() {
CriteriaQuery<T> criteriaQuery = entityManager.getCriteriaBuilder().createQuery(aClass);
Root<T> root = criteriaQuery.from(aClass);
criteriaQuery.select(root);
return entityManager.createQuery(criteriaQuery).getResultList();
}
}

View File

@ -0,0 +1,19 @@
package dst.ass1.jpa.dao.impl;
import dst.ass1.jpa.dao.ILocationDAO;
import dst.ass1.jpa.model.ILocation;
import dst.ass1.jpa.model.impl.Location;
import javax.persistence.EntityManager;
import java.util.Collection;
public class LocationDAO extends GenericDAO<ILocation> implements ILocationDAO {
public LocationDAO(EntityManager entityManager) {
super(entityManager, Location.class);
}
@Override
public Collection<Long> findReachedLocationIds() {
return null;
}
}

View File

@ -0,0 +1,13 @@
package dst.ass1.jpa.dao.impl;
import dst.ass1.jpa.dao.IMatchDAO;
import dst.ass1.jpa.model.IMatch;
import dst.ass1.jpa.model.impl.Match;
import javax.persistence.EntityManager;
public class MatchDAO extends GenericDAO<IMatch> implements IMatchDAO {
public MatchDAO(EntityManager entityManager) {
super(entityManager, Match.class);
}
}

View File

@ -0,0 +1,13 @@
package dst.ass1.jpa.dao.impl;
import dst.ass1.jpa.dao.IOrganizationDAO;
import dst.ass1.jpa.model.IOrganization;
import dst.ass1.jpa.model.impl.Organization;
import javax.persistence.EntityManager;
public class OrganizationDAO extends GenericDAO<IOrganization> implements IOrganizationDAO {
public OrganizationDAO(EntityManager entityManager) {
super(entityManager, Organization.class);
}
}

View File

@ -0,0 +1,30 @@
package dst.ass1.jpa.dao.impl;
import dst.ass1.jpa.dao.IRiderDAO;
import dst.ass1.jpa.model.IMoney;
import dst.ass1.jpa.model.IRider;
import dst.ass1.jpa.model.impl.Rider;
import javax.persistence.EntityManager;
import java.util.Map;
public class RiderDAO extends GenericDAO<IRider> implements IRiderDAO {
public RiderDAO(EntityManager entityManager) {
super(entityManager, Rider.class);
}
@Override
public IRider findByEmail(String email) {
return null;
}
@Override
public Double getTotalDistanceOfMostRecentRider() {
return null;
}
@Override
public Map<IRider, Map<String, IMoney>> getRecentSpending() {
return null;
}
}

View File

@ -0,0 +1,20 @@
package dst.ass1.jpa.dao.impl;
import dst.ass1.jpa.dao.ITripDAO;
import dst.ass1.jpa.model.ITrip;
import dst.ass1.jpa.model.impl.Trip;
import javax.persistence.EntityManager;
import java.util.Collection;
import java.util.Date;
public class TripDAO extends GenericDAO<ITrip> implements ITripDAO {
public TripDAO(EntityManager entityManager) {
super(entityManager, Trip.class);
}
@Override
public Collection<ITrip> findCancelledTrips(Date start, Date end) {
return null;
}
}

View File

@ -0,0 +1,13 @@
package dst.ass1.jpa.dao.impl;
import dst.ass1.jpa.dao.ITripInfoDAO;
import dst.ass1.jpa.model.ITripInfo;
import dst.ass1.jpa.model.impl.TripInfo;
import javax.persistence.EntityManager;
public class TripInfoDAO extends GenericDAO<ITripInfo> implements ITripInfoDAO {
public TripInfoDAO(EntityManager entityManager) {
super(entityManager, TripInfo.class);
}
}

View File

@ -0,0 +1,13 @@
package dst.ass1.jpa.dao.impl;
import dst.ass1.jpa.dao.IVehicleDAO;
import dst.ass1.jpa.model.IVehicle;
import dst.ass1.jpa.model.impl.Vehicle;
import javax.persistence.EntityManager;
public class VehicleDAO extends GenericDAO<IVehicle> implements IVehicleDAO {
public VehicleDAO(EntityManager entityManager) {
super(entityManager, Vehicle.class);
}
}