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;
|
import java.util.List;
|
||||||
|
|
||||||
public class GenericDAO<T> implements dst.ass1.jpa.dao.GenericDAO<T> {
|
public class GenericDAO<T> implements dst.ass1.jpa.dao.GenericDAO<T> {
|
||||||
private final EntityManager entityManager;
|
protected final EntityManager entityManager;
|
||||||
private final Class type;
|
private final Class type;
|
||||||
|
|
||||||
public GenericDAO(EntityManager entityManager, 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 dst.ass1.jpa.model.impl.Rider;
|
||||||
|
|
||||||
import javax.persistence.EntityManager;
|
import javax.persistence.EntityManager;
|
||||||
|
import javax.persistence.NoResultException;
|
||||||
|
import javax.persistence.Query;
|
||||||
import java.util.Map;
|
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 class RiderDAO extends GenericDAO<IRider> implements IRiderDAO {
|
||||||
public RiderDAO(EntityManager entityManager) {
|
public RiderDAO(EntityManager entityManager) {
|
||||||
super(entityManager, Rider.class);
|
super(entityManager, Rider.class);
|
||||||
@ -15,7 +20,13 @@ public class RiderDAO extends GenericDAO<IRider> implements IRiderDAO {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IRider findByEmail(String email) {
|
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
|
@Override
|
||||||
|
|||||||
@ -12,6 +12,12 @@ import static dst.ass1.jpa.util.Constants.*;
|
|||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(uniqueConstraints = @UniqueConstraint(columnNames = {M_RIDER_ACCOUNT, M_RIDER_BANK_CODE}))
|
@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 {
|
public class Rider extends PlatformUser implements IRider {
|
||||||
@Column(unique = true, nullable = false)
|
@Column(unique = true, nullable = false)
|
||||||
private String email;
|
private String email;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user