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

org.dellroad.querystream.jpa.DeleteStream Maven / Gradle / Ivy

The newest version!

/*
 * Copyright (C) 2018 Archie L. Cobbs. All rights reserved.
 */

package org.dellroad.querystream.jpa;

import jakarta.persistence.FlushModeType;
import jakarta.persistence.LockModeType;
import jakarta.persistence.Parameter;
import jakarta.persistence.Query;
import jakarta.persistence.TemporalType;
import jakarta.persistence.criteria.CriteriaDelete;
import jakarta.persistence.criteria.Expression;
import jakarta.persistence.criteria.Root;
import jakarta.persistence.criteria.Selection;
import jakarta.persistence.metamodel.SingularAttribute;

import java.util.Calendar;
import java.util.Date;
import java.util.Map;
import java.util.function.Consumer;
import java.util.function.Function;

import org.dellroad.querystream.jpa.querytype.DeleteType;

/**
 * Builder for JPA criteria bulk delete queries using a {@link java.util.stream.Stream}-like API.
 */
public interface DeleteStream extends QueryStream, CriteriaDelete, CriteriaDelete, Query> {

    /**
     * Build and execute a JPA query based on this instance.
     *
     * 

* Ultimately delegates to {@link Query#executeUpdate} and can throw any exception thrown by that method. * * @return the number of entities deleted */ int delete(); // Narrowing overrides @Override DeleteType getQueryType(); @Override DeleteStream bind(Ref> ref); @Override > DeleteStream bind(Ref ref, Function, ? extends S2> refFunction); @Override DeleteStream peek(Consumer> peeker); @Override DeleteStream filter(SingularAttribute attribute); @Override DeleteStream filter(Function, ? extends Expression> predicateBuilder); @Override DeleteStream limit(int maxSize); @Override DeleteStream skip(int num); @Override DeleteStream withFlushMode(FlushModeType flushMode); @Override DeleteStream withLockMode(LockModeType lockMode); @Override DeleteStream withHint(String name, Object value); @Override DeleteStream withHints(Map hints); @Override DeleteStream withParam(Parameter parameter, T value); @Override DeleteStream withParam(Parameter parameter, Date value, TemporalType temporalType); @Override DeleteStream withParam(Parameter parameter, Calendar value, TemporalType temporalType); @Override DeleteStream withParams(Iterable> params); @Override DeleteStream withLoadGraph(String name); @Override DeleteStream withFetchGraph(String name); }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy