/*_##########################################################################
_##
_## 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.RealNetworkInterface;
import com.github.kaitoy.sneo.giane.model.dao.RealNetworkInterfaceDao;
public class RealNetworkInterfaceDaoImpl
extends AbstractDao<RealNetworkInterface> implements RealNetworkInterfaceDao {
public RealNetworkInterface findByKey(Integer id) {
return findSingleBy("id", id, RealNetworkInterface.class);
}
public RealNetworkInterface findByName(String name) {
return findSingleBy("name", name, RealNetworkInterface.class);
}
public RealNetworkInterface findByNameAndNodeId(String name, Integer nodeId) {
CriteriaBuilder cb = getCriteriaBuilder();
CriteriaQuery<RealNetworkInterface> cq = cb.createQuery(RealNetworkInterface.class);
Root<RealNetworkInterface> r = cq.from(RealNetworkInterface.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;
}
}
}