Страницы

Поиск по вопросам

среда, 20 февраля 2019 г.

Использование criteria из JPA

В новом Hibernate использование Criteria является Deprecated. Как я могу заменить такой код с использованием org.hibernate.Criteria
Criteria criteria = session.createCriteria(Role.class); long id = ((Role) criteria.add(Restrictions.eq("name", name)).uniqueResult()).getId();
на его эквивалент с использованием javax.persistence.criteria.CriteriaBuilder из JPA ?


Ответ

em - экземпляр EntityManager
public Long query(String name) { CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaQuery cq = cb.createQuery(Role.class); Root root = cq.from(Role.class); cq.where(cb.equal(root.get("name"), cb.parameter(String.class, "name"))); // cq.distinct(true); Query q = em.createQuery(cq); q.setParameter("name", name); List result = q.getResultList(); if (result.size() > 0) { return result.get(0).getId(); } return null; }

Комментариев нет:

Отправить комментарий