Implement Rider query by email (1.2.1 a)
This commit is contained in:
parent
7264e610d0
commit
c0658a1bec
@ -6,7 +6,7 @@ import javax.persistence.criteria.Root;
|
||||
import java.util.List;
|
||||
|
||||
public class GenericDAO<T> implements dst.ass1.jpa.dao.GenericDAO<T> {
|
||||
private final EntityManager entityManager;
|
||||
protected final EntityManager entityManager;
|
||||
private final Class type;
|
||||
|
||||
public GenericDAO(EntityManager entityManager, Class type) {
|
||||
|
||||
@ -6,8 +6,13 @@ import dst.ass1.jpa.model.IRider;
|
||||
import dst.ass1.jpa.model.impl.Rider;
|
||||
|
||||
import javax.persistence.EntityManager;
|
||||
import javax.persistence.NoResultException;
|
||||
import javax.persistence.Query;
|
||||
import java.util.Map;
|
||||
|
||||
import static dst.ass1.jpa.util.Constants.M_RIDER_EMAIL;
|
||||
import static dst.ass1.jpa.util.Constants.Q_RIDER_BY_EMAIL;
|
||||
|
||||
public class RiderDAO extends GenericDAO<IRider> implements IRiderDAO {
|
||||
public RiderDAO(EntityManager entityManager) {
|
||||
super(entityManager, Rider.class);
|
||||
@ -15,7 +20,13 @@ public class RiderDAO extends GenericDAO<IRider> implements IRiderDAO {
|
||||
|
||||
@Override
|
||||
public IRider findByEmail(String email) {
|
||||
return null;
|
||||
Query query = super.entityManager.createNamedQuery(Q_RIDER_BY_EMAIL);
|
||||
query.setParameter(M_RIDER_EMAIL, email);
|
||||
try {
|
||||
return (IRider) query.getSingleResult();
|
||||
} catch (NoResultException e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -12,6 +12,12 @@ import static dst.ass1.jpa.util.Constants.*;
|
||||
|
||||
@Entity
|
||||
@Table(uniqueConstraints = @UniqueConstraint(columnNames = {M_RIDER_ACCOUNT, M_RIDER_BANK_CODE}))
|
||||
@NamedQueries({
|
||||
@NamedQuery(
|
||||
name = Q_RIDER_BY_EMAIL,
|
||||
query = "SELECT r from Rider r WHERE r.email = :email"
|
||||
)
|
||||
})
|
||||
public class Rider extends PlatformUser implements IRider {
|
||||
@Column(unique = true, nullable = false)
|
||||
private String email;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user