Meus AutorDao e LivroDao são bem mais enxutos, vide exemplo abaixo. Por que o professor preferiu delegar ao Dao por composição? Apenas para demonstrar o @PostConstruct?
public class LivroDao extends Dao<Livro> {
    private static final long serialVersionUID = 7688976646966685004L;
    public LivroDao() {
        super(Livro.class);
    }
}