first commit with existing project files

This commit is contained in:
Vincent Guillet
2025-05-15 11:37:34 +02:00
parent 86bdf6e81a
commit ff55029ce2
13 changed files with 596 additions and 0 deletions

View File

@@ -0,0 +1,65 @@
package com.humanbooster.dao;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import java.util.List;
public abstract class GenericDaoImpl<T, ID> implements GenericDao<T, ID> {
private final Class<T> entityClass;
protected SessionFactory sessionFactory;
public GenericDaoImpl(SessionFactory sessionFactory, Class<T> entityClass) {
this.sessionFactory = sessionFactory;
this.entityClass = entityClass;
}
@Override
public void create(T entity) {
try (Session session = sessionFactory.openSession()) {
session.beginTransaction();
session.persist(entity);
session.getTransaction().commit();
}
}
@Override
public T read(ID id) {
try (Session session = sessionFactory.openSession()) {
session.beginTransaction();
T entity = session.get(entityClass, id);
session.getTransaction().commit();
return entity;
}
}
@Override
public void update(T entity) {
try (Session session = sessionFactory.openSession()) {
session.beginTransaction();
session.merge(entity);
session.getTransaction().commit();
}
}
@Override
public void delete(ID id) {
try (Session session = sessionFactory.openSession()) {
session.beginTransaction();
T entity = session.get(entityClass, id);
if (entity != null) session.remove(entity);
session.getTransaction().commit();
}
}
@Override
public List<T> findAll() {
try (Session session = sessionFactory.openSession()) {
session.beginTransaction();
List<T> entities = session.createQuery("from " + entityClass.getName(), entityClass).list();
session.getTransaction().commit();
return entities;
}
}
}