001package model.repository;
002
003import model.entity.User;
004
005import javax.persistence.EntityManager;
006import javax.persistence.PersistenceContext;
007import java.io.Serializable;
008
009
010/**
011 * Classe che incapsula la logica per il recupero di entità di tipo {@link User}
012 */
013public class UserRepository implements Serializable {
014
015    @PersistenceContext
016    protected EntityManager em;
017
018    /**
019     * Restituisce i dati di un utente data un email
020     * @param email email dell'utente
021     * @return entità User
022     */
023    public User getByEmail(String email) {
024        return em.createQuery("from User u where u.email=:email", User.class).setParameter("email", email)
025                .getResultList().stream().findFirst().orElse(null);
026    }
027}