public Boolean delete(Long id) {
try {
return jpaApi.withTransaction(() -> {
try {
CriteriaBuilder cb = JPA.em().getCriteriaBuilder();
CriteriaQuery<T> cq = cb.createQuery(classType);
Root<T> root = cq.from(classType);
cq.where(cb.equal(root.get("id"), id));
try {
T entity = JPA.em().createQuery(cq).getSingleResult();
JPA.em().remove(entity);
return true;
} catch(NoResultException ex) {
return false;
}
} catch(Exception ex) {
logger.error(ex.getMessage());
return false;
}
});
} catch (Throwable throwable) {
return false;
}
}