/*_########################################################################## _## _## Copyright (C) 2012-2013 Kaito Yamada _## _########################################################################## */ package com.github.kaitoy.sneo.giane.model.dao.impl; import javax.persistence.NoResultException; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Root; import com.github.kaitoy.sneo.giane.model.Node; import com.github.kaitoy.sneo.giane.model.dao.NodeDao; public class NodeDaoImpl extends AbstractDao<Node> implements NodeDao { public Node findByKey(Integer id) { return findSingleBy("id", id, Node.class); } public Node findByNameAndNetworkId(String name, Integer networkId) { CriteriaBuilder cb = getCriteriaBuilder(); CriteriaQuery<Node> cq = cb.createQuery(Node.class); Root<Node> r = cq.from(Node.class); cq.select(r).where( cb.and( cb.equal(r.get("name"), name), cb.equal(r.get("network"), networkId) ) ); try { return getEntityManager().createQuery(cq).getSingleResult(); } catch (NoResultException e) { return null; } } }