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

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


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

package org.dellroad.querystream.jpa;

import java.util.Calendar;
import java.util.Date;
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.NoResultException;
import javax.persistence.Parameter;
import javax.persistence.TemporalType;
import javax.persistence.criteria.Expression;
import javax.persistence.criteria.Selection;

/**
 * A long {@link ExprValue}.
 */
public interface LongValue extends ExprValue>, LongStream {

    /**
     * Build and evaluate a JPA query based on this instance and return the single non-NULL result.
     *
     * 

* This variant of {@link #value} is useful when it is known that NULL won't be returned. * * @return result of executed query * @throws NoResultException if the query returns NULL */ default long longValue() { final Long value = this.value(); if (value == null) throw new NoResultException("NULL value returned from query"); return (long)value; } // Narrowing overrides (QueryStream) @Override LongValue bind(Ref> ref); @Override LongValue peek(Consumer> peeker); @Override > LongValue bind( Ref ref, Function, ? extends S2> refFunction); @Override LongValue filter(Function, ? extends Expression> predicateBuilder); @Override LongValue withFlushMode(FlushModeType flushMode); @Override LongValue withLockMode(LockModeType lockMode); @Override LongValue withHint(String name, Object value); @Override LongValue withHints(Map hints); @Override LongValue withParam(Parameter parameter, T value); @Override LongValue withParam(Parameter parameter, Date value, TemporalType temporalType); @Override LongValue withParam(Parameter parameter, Calendar value, TemporalType temporalType); @Override LongValue withParams(Iterable> params); @Override LongValue withLoadGraph(String name); @Override LongValue withFetchGraph(String name); }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy