package org.ovirt.engine.core.dao; import java.util.List; import org.hibernate.Query; import org.hibernate.criterion.Restrictions; import org.ovirt.engine.core.common.businessentities.ActionGroup; import org.ovirt.engine.core.common.businessentities.VDSGroup; import org.ovirt.engine.core.compat.Guid; /** * <code>VdsGroupDAOHibernateImpl</code> provides an implementation of {@link VdsGroupDAO} based on Hibernate. * */ public class VdsGroupDAOHibernateImpl extends BaseDAOHibernateImpl<VDSGroup, Guid> implements VdsGroupDAO { public VdsGroupDAOHibernateImpl() { super(VDSGroup.class); } @Override public VDSGroup getWithRunningVms(Guid id) { Query query = getSession().getNamedQuery("vdsgroup_with_running_vms"); query.setParameter("vds_group_id", id); return (VDSGroup) query.uniqueResult(); } @Override public List<VDSGroup> getAllForStoragePool(Guid id) { return findByCriteria(Restrictions.eq("storagePool", id)); } @Override public List<VDSGroup> getAllWithQuery(String query) { return findAllWithSQL(query); } @Override public List<VDSGroup> getClustersWithPermittedAction(Guid userId, ActionGroup actionGroup) { Query query = getSession().getNamedQuery("fn_perms_get_vds_groups_with_with_permitted_action"); query.setParameter("v_user_id", userId).setParameter("v_action_group_id", actionGroup.getId()); return (List<VDSGroup>) query.uniqueResult(); } }