Generic Dao is a Java package which allows a developer to skip writing DAOs for their persistent objects when they are using Spring and JDBC or Hibernate (support for others as needed/requested). It provides basic DAO methods like save/create/delete/update/findById, search methods, and batch update methods for ORM functionality which stays out of your way. It can easily be overridden and controlled. Interceptors and caching mechanisms are provided.
This also includes a set of reflection utilities which allow for Commons BeanUtils like functionality but includes support for annotations, fields, construction of any object, and nested null handling.