一个支持泛型的DAO接口类详解编程语言

  
/** 
 * Defines a generic DAO interface. 
 *  
 * @author javier 
 *  
 * @param <T> 
 *            The type this DAO handles. 
 * @param <ID> 
 *            The type of the id of the handled entity. 
 */ 
public interface DAOInterface<T, ID extends Serializable> 
{ 
 
    /** 
     * Makes the given entity persistent. 
     * 
     * @param entity The entity to persist. 
     * @throws When the quota of instances for that entity was exceeded. 
     */ 
    void makePersistent(T entity) throws QuotaExceededException; 
 
    /** 
     * Makes the given entity transient. 
     * 
     * @param entity The entity to make transient. 
     */ 
    void makeTransient(T entity); 
 
    /** 
     * @return the number of matching entities. 
     */ 
    int count(Filter filter); 
 
    /** 
     * Returns a single entity which has the given ID or throws an 
     * <code>EntityNotFoundException</code> if no matching entity is found. 
     *  
     * @param id 
     *            The ID of the entity to return. 
     * @return The entity. 
     */ 
    T findById(ID id) throws EntityNotFoundException; 
 
    /** 
     * Returns all matching entities of type <code>T</code>. 
     *  
     * @param filter 
     *            The <code>Filter</code> to use. 
     * 
     * @return An ordered <code>List</code> with the entities. 
     */ 
    List<T> find(Filter filter); 
 
    /** 
     * Returns all entities of type <code>T</code>. 
     *  
     * @return An ordered <code>List</code> with the entities. 
     */ 
    List<T> findAll(); 
 
    /** 
     * Returns a page of entities. 
     *  
     * @param filter 
     *            The <code>Filter</code> to use. 
     * @param startRow 
     *            The offset. 
     * @param pageSize 
     *            The number of entities to return. 
     * 
     * @return A <code>Pair</code> of values. The first value is the 
     *         <code>List</code> of entities and the second one if the total 
     *         number of existing entities. 
     */ 
    Pair<List<T>, Integer> findPaged(Filter filter, int startRow, int pageSize); 
 
    /** 
     * Flushing is the process of synchronising the underlying persistent 
     * store with persistable state held in memory.  
     */ 
    void flush(); 
} 
  

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/11076.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论