package org.ovirt.engine.core.dao;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.ovirt.engine.core.common.businessentities.ad_groups;
import org.ovirt.engine.core.compat.Guid;
/**
* <code>AdGroupDAOHibernateImpl</code> provides an implementation of {@link AdGroupDAO} that uses Hibernate for
* underlying persistence.
*
*/
public class AdGroupDAOHibernateImpl extends BaseDAOHibernateImpl<ad_groups, Guid> implements AdGroupDAO {
@Override
public void remove(Guid id) {
/*
* This implementation was necessary in order to handle cascading deletes of what is in the tags_user_group_map
* table. it can be moved to the default generic implementation when the association between ad_groups and tags
* are handled via @OneToMany relationships.
*/
Session session = getSession();
Transaction transaction = session.beginTransaction();
Query query = session.createQuery("delete from tags_user_group_map tugm where tugm.groupId = :group_id");
query.setParameter("group_id", id);
query.executeUpdate();
ad_groups instance = get(id);
if (instance != null) {
session.delete(instance);
}
transaction.commit();
}
public AdGroupDAOHibernateImpl() {
super(ad_groups.class);
}
@Override
public List<ad_groups> getAllTimeLeasedForPool(int id) {
// TODO Auto-generated method stub
return null;
}
}