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

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


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

package org.dellroad.querystream.jpa;

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

import javax.persistence.FlushModeType;
import javax.persistence.LockModeType;
import javax.persistence.Query;
import javax.persistence.criteria.CriteriaUpdate;
import javax.persistence.criteria.Expression;
import javax.persistence.criteria.Path;
import javax.persistence.criteria.Root;
import javax.persistence.metamodel.SingularAttribute;

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

/**
 * Builder for JPA criteria bulk update queries using a {@link java.util.stream.Stream}-like API.
 */
public interface UpdateStream extends QueryStream, CriteriaUpdate, CriteriaUpdate, 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 updated */ int update(); // Setters UpdateStream set(Path attribute, Expression value); UpdateStream set(Path attribute, V value); UpdateStream set(SingularAttribute attribute, Expression value); UpdateStream set(SingularAttribute attribute, V value); // Narrowing overrides @Override UpdateType getQueryType(); @Override UpdateStream bind(Ref> ref); @Override UpdateStream peek(Consumer> peeker); @Override UpdateStream filter(SingularAttribute attribute); @Override UpdateStream filter(Function, ? extends Expression> predicateBuilder); @Override UpdateStream limit(int maxSize); @Override UpdateStream skip(int num); @Override UpdateStream withFlushMode(FlushModeType flushMode); @Override UpdateStream withLockMode(LockModeType lockMode); @Override UpdateStream withHint(String name, Object value); @Override UpdateStream withHints(Map hints); @Override UpdateStream withLoadGraph(String name); @Override UpdateStream withFetchGraph(String name); }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy