package pl.net.bluesoft.rnd.processtool.hibernate;
import org.hibernate.Session;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Order;
import java.util.Collection;
import java.util.List;
/**
* @author: amichalak@bluesoft.net.pl
*/
public interface HibernateBean<T> {
void setSession(Session session);
Session getSession();
Class<T> getEntityType();
DetachedCriteria getDetachedCriteria();
T loadById(Object id);
T findUnique(Criterion... queries);
List<T> findAll();
List<T> findAll(Order order);
List<T> findByCriteria(DetachedCriteria criteria);
void saveOrUpdate(Collection<T> objects);
void saveOrUpdate(T object);
void delete(Collection<T> objects);
void delete(T object);
T refresh(T object);
}