All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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