View Javadoc

1   package org.kuali.student.r2.common.dao;
2   
3   import java.io.Serializable;
4   import java.util.List;
5   
6   /**
7    * Interface, that describes default methods of Dao objects for entity.
8    *
9    * @author ihar
10   */
11  public interface EntityDao<T> {
12  
13      /**
14       * Find object by primary key.
15       *
16       * @param primaryKey Primary key
17       * @return Entity for given key
18       */
19      T find(Serializable primaryKey);
20  
21      /**
22       * Find objects of specified class by primary keys.
23       *
24       * @param primaryKeys - list of Primary keys
25       * @return Entity for given key
26       */
27      public List<T> findByIds(List<? extends Serializable> primaryKeys) throws Exception;
28  
29      /**
30       * Load all entities of this type.
31       *
32       * @return List of entities
33       */
34      List<T> findAll();
35  
36      /**
37       * Persist unsaved object.
38       *
39       * @param entity Entity to save
40       */
41      void persist(T entity);
42  
43      /**
44       * Update detached object.
45       *
46       * @param entity Entity to update
47       */
48      void update(T entity);
49  
50  
51      /**
52       * Merge detached object.
53       *
54       * @param entity Entity to save
55       * @param <T>    the Entity type
56       * @return Merged entity.
57       */
58      T merge(T entity);
59  
60      /**
61       * Remove entity from the persistent store.
62       *
63       * @param entity Entity to remove
64       */
65      void remove(T entity);
66  }