/*_########################################################################## _## _## 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.Vlan; import com.github.kaitoy.sneo.giane.model.dao.VlanDao; public class VlanDaoImpl extends AbstractDao<Vlan> implements VlanDao { public Vlan findByKey(Integer id) { return findSingleBy("id", id, Vlan.class); } public Vlan findByNameAndNodeId(String name, Integer nodeId) { CriteriaBuilder cb = getCriteriaBuilder(); CriteriaQuery<Vlan> cq = cb.createQuery(Vlan.class); Root<Vlan> r = cq.from(Vlan.class); cq.select(r).where( cb.and( cb.equal(r.get("name"), name), cb.equal(r.get("node"), nodeId) ) ); try { return getEntityManager().createQuery(cq).getSingleResult(); } catch (NoResultException e) { return null; } } }