package edu.csula.sbrest.model; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import org.springframework.stereotype.Repository; import org.springframework.transaction.annotation.Transactional; @Repository public class UserDaoImpl implements UserDao { @PersistenceContext private EntityManager entityManager; @Override public User getUser( Long id ) { return entityManager.find( User.class, id ); } @Override public User getUserByUsername( String username ) { String query = "from User where lower(username) = :username"; List users = entityManager.createQuery( query, User.class ) .setParameter( "username", username.toLowerCase() ) .getResultList(); return users.size() == 0 ? null : users.get( 0 ); } @Override public User getUserByEmail( String email ) { String query = "from User where lower(email) = :email"; List users = entityManager.createQuery( query, User.class ) .setParameter( "email", email.toLowerCase() ) .getResultList(); return users.size() == 0 ? null : users.get( 0 ); } @Override public List getUsers() { return entityManager.createQuery( "from User order by id", User.class ) .getResultList(); } @Override @Transactional public User saveUser( User user ) { return entityManager.merge( user ); } }