
org.datafx.crud.jpa.JpaPersistCall Maven / Gradle / Ivy
The newest version!
package org.datafx.crud.jpa;
import org.datafx.util.EntityWithId;
import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import javax.persistence.PersistenceException;
import java.util.function.Supplier;
public class JpaPersistCall, T> extends JpaCall {
public JpaPersistCall(Supplier managerSupplier) {
super(managerSupplier);
}
public JpaPersistCall(EntityManager manager) {
this(() -> manager);
}
@Override
public S call(S entity) throws Exception {
EntityTransaction transaction = getManager().getTransaction();
try {
transaction.begin();
getManager().persist(entity);
transaction.commit();
return entity;
} catch (PersistenceException e) {
transaction.rollback();
throw new PersistenceException("Rollback on entity persistence", e);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy