UserRepository.java

package model.repository;

import model.entity.User;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import java.io.Serializable;


/**
 * Classe che incapsula la logica per il recupero di entità di tipo {@link User}
 */
public class UserRepository implements Serializable {

    @PersistenceContext
    protected EntityManager em;

    /**
     * Restituisce i dati di un utente data un email
     * @param email email dell'utente
     * @return entità User
     */
    public User getByEmail(String email) {
        return em.createQuery("from User u where u.email=:email", User.class).setParameter("email", email)
                .getResultList().stream().findFirst().orElse(null);
    }
}