Si tienes una clase:
Código:
public abstract class GenericHibernateDAO<E> extends HibernateDaoSupport implements GenericDAO<E>{...
y si haces que UserDAO extienda de GenericHibernateDAO<Usuario> tendrías acceso desde UserDAO a todos los métodos estandar de Hibernate ya implementados: inserción, borrado, listado, etc
public List<E> findBy(E example) {}
public void remove(E entity) {}
public Object save (E entity){}
public void update (E entity){}
... etc
Además puedes añadirle los que necesites como el getUserFromUsername(String username).