Implement Driver active employments (1.2.1 b)
This commit is contained in:
parent
95c96e5a5f
commit
93608291ad
@ -5,8 +5,12 @@ import dst.ass1.jpa.model.IDriver;
|
||||
import dst.ass1.jpa.model.impl.Driver;
|
||||
|
||||
import javax.persistence.EntityManager;
|
||||
import javax.persistence.Query;
|
||||
import java.util.Collection;
|
||||
|
||||
import static dst.ass1.jpa.util.Constants.M_DRIVER_ORGANIZATIONS;
|
||||
import static dst.ass1.jpa.util.Constants.Q_ACTIVE_IN_MULITIPLE_ORGANIZATIONS_DRIVERS;
|
||||
|
||||
public class DriverDAO extends GenericDAO<IDriver> implements IDriverDAO {
|
||||
public DriverDAO(EntityManager entityManager) {
|
||||
super(entityManager, Driver.class);
|
||||
@ -14,6 +18,8 @@ public class DriverDAO extends GenericDAO<IDriver> implements IDriverDAO {
|
||||
|
||||
@Override
|
||||
public Collection<IDriver> findActiveInMultipleOrganizationsDrivers(Long numberOfOrganizations) {
|
||||
return null;
|
||||
Query query = super.entityManager.createNamedQuery(Q_ACTIVE_IN_MULITIPLE_ORGANIZATIONS_DRIVERS);
|
||||
query.setParameter(M_DRIVER_ORGANIZATIONS, numberOfOrganizations);
|
||||
return query.getResultList();
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,7 +6,18 @@ import javax.persistence.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
|
||||
import static dst.ass1.jpa.util.Constants.Q_ACTIVE_IN_MULITIPLE_ORGANIZATIONS_DRIVERS;
|
||||
|
||||
@Entity
|
||||
@NamedQuery(
|
||||
name = Q_ACTIVE_IN_MULITIPLE_ORGANIZATIONS_DRIVERS,
|
||||
query = "SELECT d FROM Driver d " +
|
||||
"LEFT JOIN Employment e " +
|
||||
"ON d.id = e.id.driver " +
|
||||
"WHERE e.active = true " +
|
||||
"AND e.since < DATEADD('Month', -1, CURRENT_DATE) " +
|
||||
"GROUP BY e.id.driver HAVING COUNT(*) > :organizations"
|
||||
)
|
||||
public class Driver extends PlatformUser implements IDriver {
|
||||
@ManyToOne(targetEntity = Vehicle.class, optional = false)
|
||||
private IVehicle vehicle;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user