package io.oasp.module.jpa.dataaccess.api;
import java.util.List;
import net.sf.mmm.util.entity.api.PersistenceEntity;
/**
* This is the interface for a {@link Dao} responsible for a {@link PersistenceEntity} that represents master-data. In
* that case you typically have a limited number of entities in your persistent store and need operations like
* {@link #findAll()}.<br>
* <b>ATTENTION:</b><br>
* Such operations are not part of {@link GenericDao} or {@link Dao} as invoking them (accidently) could cause that an
* extraordinary large number of entities are loaded into main memory and could cause serious performance and stability
* disasters. So only extend this interface in case you are aware of what you are doing.
*
* @param <E> is the generic type of the {@link PersistenceEntity}.
*
*/
public interface RevisionedMasterDataDao<E extends MutablePersistenceEntity<Long>> extends GenericRevisionedDao<Long, E> {
/**
* @return an {@link Iterable} with ALL managed entities from the persistent store. Not exposed to API by default as
* this might not make sense for all kind of entities.
*/
List<E> findAll();
}