![JAR search and dependency download from the Maven repository](/logo.png)
fi.foyt.fni.persistence.dao.users.UserEmailDAO Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of persistence Show documentation
Show all versions of persistence Show documentation
Forge & Illusion - Persistence
package fi.foyt.fni.persistence.dao.users;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import fi.foyt.fni.persistence.model.users.UserEmail_;
import fi.foyt.fni.persistence.dao.GenericDAO;
import fi.foyt.fni.persistence.model.users.User;
import fi.foyt.fni.persistence.model.users.UserEmail;
public class UserEmailDAO extends GenericDAO {
private static final long serialVersionUID = 1L;
public UserEmail create(User user, String email, Boolean primary) {
EntityManager entityManager = getEntityManager();
UserEmail userEmail = new UserEmail();
userEmail.setEmail(email);
userEmail.setUser(user);
userEmail.setPrimary(primary);
entityManager.persist(userEmail);
return userEmail;
}
public UserEmail findByEmail(String email) {
EntityManager entityManager = getEntityManager();
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery criteria = criteriaBuilder.createQuery(UserEmail.class);
Root root = criteria.from(UserEmail.class);
criteria.select(root);
criteria.where(criteriaBuilder.equal(root.get(UserEmail_.email), email));
return getSingleResult(entityManager.createQuery(criteria));
}
public UserEmail findByUserAndPrimary(User user, Boolean primary) {
EntityManager entityManager = getEntityManager();
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery criteria = criteriaBuilder.createQuery(UserEmail.class);
Root root = criteria.from(UserEmail.class);
criteria.select(root);
criteria.where(
criteriaBuilder.and(
criteriaBuilder.equal(root.get(UserEmail_.user), user),
criteriaBuilder.equal(root.get(UserEmail_.primary), primary)
)
);
return getSingleResult(entityManager.createQuery(criteria));
}
public List listByUser(User user) {
EntityManager entityManager = getEntityManager();
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery criteria = criteriaBuilder.createQuery(UserEmail.class);
Root root = criteria.from(UserEmail.class);
criteria.select(root);
criteria.where(criteriaBuilder.equal(root.get(UserEmail_.user), user));
return entityManager.createQuery(criteria).getResultList();
}
public List listUsersByEmails(List emails) {
EntityManager entityManager = getEntityManager();
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery criteria = criteriaBuilder.createQuery(User.class);
Root root = criteria.from(UserEmail.class);
criteria.select(root.get(UserEmail_.user));
criteria.where(root.get(UserEmail_.email).in(emails));
criteria.groupBy(root.get(UserEmail_.user));
return entityManager.createQuery(criteria).getResultList();
}
public Long countByUser(User user) {
EntityManager entityManager = getEntityManager();
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery criteria = criteriaBuilder.createQuery(Long.class);
Root root = criteria.from(UserEmail.class);
criteria.select(criteriaBuilder.count(root));
criteria.where(criteriaBuilder.equal(root.get(UserEmail_.user), user));
return entityManager.createQuery(criteria).getSingleResult();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy