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

org.dellroad.querystream.jpa.PathValue 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.TemporalType;
import jakarta.persistence.criteria.Expression;
import jakarta.persistence.criteria.Path;
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;

/**
 * A {@link PathStream} that is guaranteed to return at most a single result.
 */
public interface PathValue> extends ExprValue, PathStream {

// Narrowing overrides (QueryStream)

    @Override
    PathValue bind(Ref ref);

    @Override
    PathValue peek(Consumer peeker);

    @Override
    > PathValue bind(Ref ref, Function refFunction);

    @Override
    PathValue filter(SingularAttribute attribute);

    @Override
    PathValue filter(Function> predicateBuilder);

    @Override
    PathValue withFlushMode(FlushModeType flushMode);

    @Override
    PathValue withLockMode(LockModeType lockMode);

    @Override
    PathValue withHint(String name, Object value);

    @Override
    PathValue withHints(Map hints);

    @Override
     PathValue withParam(Parameter parameter, T value);

    @Override
    PathValue withParam(Parameter parameter, Date value, TemporalType temporalType);

    @Override
    PathValue withParam(Parameter parameter, Calendar value, TemporalType temporalType);

    @Override
    PathValue withParams(Iterable> params);

    @Override
    PathValue withLoadGraph(String name);

    @Override
    PathValue withFetchGraph(String name);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy