Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2. private EntityManager entityManager = EntityManagerUtil.getEntityManager();: Esta línea crea una instancia de EntityManager utilizando
el método getEntityManager() de la clase EntityManagerUtil.
3. private Class<T>
<T> clazz;: Esta línea define una variable de tipo Class que se utilizará para almacenar la clase de entidad que se está
manejando.
4. public EntityManager getEntityManager() { return entityManager; }: Este método devuelve la instancia de EntityManager creada en el
constructor.
5. public Optional<T> get(int id) { return Optional.ofNullable(entityManager.find(clazz, id)); }: Este método busca una
entidad por su identificador y devuelve un objeto Optional que puede contener la entidad encontrada o ser nulo.
6. public Optional<T> get(Object id) { return Optional.ofNullable(entityManager.find(clazz, id)); }: Este método es similar al
anterior, pero acepta un objeto Object como identificador en lugar de un int.
7. public List<T> getAll() { String qlString = "FROM " + clazz.getName(); Query query =
entityManager.createQuery(qlString); return query.getResultList(); }: Este método devuelve una lista de todas las entidades de la clase
manejada.
8. public void save(T t) { executeInsideTransaction(entityManager -> entityManager.persist(t)); }: Este método guarda una
entidad en la base de datos.
9. public void update(T t) { executeInsideTransaction(entityManager -> entityManager.merge(t)); }: Este método actualiza una
entidad en la base de datos.
10. public void delete(T t) { executeInsideTransaction(entityManager -> entityManager.merge(t)); }: Este método elimina una
entidad de la base de datos.
11. public void setClazz(Class<T> clazz) { this.clazz = clazz; }: Este método establece la clase de entidad que se está manejando.
En resumen, la clase AbstractDao proporciona métodos genéricos para realizar operaciones CRUD (crear, leer, actualizar y eliminar) en una base de datos
utilizando EntityManager. Al ser una clase abstracta, se espera que se extienda para proporcionar implementaciones específicas para cada entidad que se
maneje en la aplicación.