Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class EntityManagerHelper {
- public static <ENTITY_TYPE> void persistInTransaction(EntityManager entityManager, ENTITY_TYPE entity) {
- executeInTransaction(entityManager, () -> entityManager.persist(entity));
- }
- public static <EC> void removeAll(EntityManager em, Class<EC> entityClass) {
- executeInTransaction(em, () -> {
- List<EC> all = findAll(em, entityClass);
- for (EC entity : all) {
- em.remove(entity);
- }
- });
- }
- public static <EC> List<EC> findAll(EntityManager em, Class<EC> entityClass) {
- CriteriaBuilder cb = em.getCriteriaBuilder();
- CriteriaQuery<EC> criteria = cb.createQuery(entityClass);
- criteria.from(entityClass);
- return em.createQuery(criteria).getResultList();
- }
- private static void executeInTransaction(EntityManager entityManager, TransactionExecutor transactionExecutor) {
- try {
- entityManager.getTransaction().begin();
- transactionExecutor.executeInTransaction();
- entityManager.getTransaction().commit();
- } catch (RuntimeException e) {
- if (entityManager.getTransaction().isActive()) {
- entityManager.getTransaction().rollback();
- }
- throw e;
- }
- }
- @FunctionalInterface
- public interface TransactionExecutor {
- void executeInTransaction();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement