Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package metubeV2.repository.util;
- import javax.persistence.EntityManager;
- import javax.persistence.NoResultException;
- import javax.persistence.criteria.CriteriaBuilder;
- import javax.persistence.criteria.CriteriaQuery;
- import javax.persistence.criteria.Root;
- import java.util.Optional;
- /**
- * Created by IntelliJ IDEA.
- * User: LAPD
- * Date: 7.2.2019 г.
- * Time: 10:07 ч.
- */
- public class EntityGetter<T> {
- public static<T> Optional<?> getEntityByParameter(String name,
- String parameterName,
- EntityManager entityManager,
- Class<T> aClass) {
- CriteriaBuilder criteriaBuilder = entityManager
- .getCriteriaBuilder();
- CriteriaQuery<T> criteriaQuery = (CriteriaQuery<T>) criteriaBuilder
- .createQuery(aClass.getClass());
- Root<T> root = (Root<T>) criteriaQuery.from(aClass.getClass());
- criteriaQuery.select(root)
- .where(criteriaBuilder
- .equal(root.get(parameterName), name));
- try {
- return Optional.ofNullable(entityManager
- .createQuery(criteriaQuery)
- .getSingleResult());
- } catch (NoResultException ignored) {
- return Optional.empty();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement