package rocks.inspectit.server.util; import javax.persistence.EntityManager; /** * Utility class for JPA operations. * * @author Ivan Senic * */ public final class JpaUtil { /** * Private constructor. */ private JpaUtil() { } /** * Small util to correctly delete object from database. If object is not contained in the * current session denoted by given entity manager it will be merged first. * * @param <T> * type of object * @param entityManager * {@link EntityManager} to be used for deletion. * @param object * Persisted object to delete. */ public static <T> void delete(EntityManager entityManager, T object) { if (entityManager.contains(object)) { entityManager.remove(object); } else { T merged = entityManager.merge(object); entityManager.remove(merged); } } }