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 dst.ass1.jpa.model.impl.Driver;
|
||||||
|
|
||||||
import javax.persistence.EntityManager;
|
import javax.persistence.EntityManager;
|
||||||
|
import javax.persistence.Query;
|
||||||
import java.util.Collection;
|
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 class DriverDAO extends GenericDAO<IDriver> implements IDriverDAO {
|
||||||
public DriverDAO(EntityManager entityManager) {
|
public DriverDAO(EntityManager entityManager) {
|
||||||
super(entityManager, Driver.class);
|
super(entityManager, Driver.class);
|
||||||
@ -14,6 +18,8 @@ public class DriverDAO extends GenericDAO<IDriver> implements IDriverDAO {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Collection<IDriver> findActiveInMultipleOrganizationsDrivers(Long numberOfOrganizations) {
|
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.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
|
||||||
|
import static dst.ass1.jpa.util.Constants.Q_ACTIVE_IN_MULITIPLE_ORGANIZATIONS_DRIVERS;
|
||||||
|
|
||||||
@Entity
|
@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 {
|
public class Driver extends PlatformUser implements IDriver {
|
||||||
@ManyToOne(targetEntity = Vehicle.class, optional = false)
|
@ManyToOne(targetEntity = Vehicle.class, optional = false)
|
||||||
private IVehicle vehicle;
|
private IVehicle vehicle;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user