package com.axxx.dps.apv.persistence; import java.util.List; import org.springframework.transaction.annotation.Transactional; /** * * To be used by the web layer. * This is the business layer, that marks transactional boundaries. * * @author mdutoo * * @param <T> */ public interface GenericEntityService<T extends GenericEntity<T>> { public abstract GenericEntity<?> getEntity(Class<? extends GenericEntity<?>> clazz, Integer id); public abstract T getById(Number id); @Transactional public abstract void create(T entity); @Transactional public abstract void update(T entity); @Transactional public abstract void delete(T entity); @Transactional public abstract void delete(Number id); public abstract T refresh(T entity); public abstract List<T> list(); public abstract Long count(); public abstract void evict(T entity); public abstract void flush(); public abstract void setReadOnly(T object, boolean readOnly); public abstract void clearSession(); }