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

javax.persistence.criteria.MapJoin Maven / Gradle / Ivy

Go to download

Hibernate developmental JSR 317 (Java Persistence API 2.0) contracts. Used to allow incremental implementation of features on the way to full JPA 2.0 support.

The newest version!
// $Id: MapJoin.java 17038 2009-07-08 10:58:24Z epbernard $
// EJB3 Specification Copyright 2004-2009 Sun Microsystems, Inc.
package javax.persistence.criteria;

import java.util.Map;
import javax.persistence.metamodel.MapAttribute;

/**
 * The MapJoin interface is the type of the result of
 * joining to a collection over an association or element
 * collection that has been specified as a java.util.Map.
 *
 * @param  The source type of the join
 * @param  The type of the target Map key
 * @param  The type of the target Map value
 */
public interface MapJoin
		extends PluralJoin, V> {

    /**
     * Return the metamodel representation for the map attribute.
     * @return metamodel type representing the Map that is
     *         the target of the join
     */
    MapAttribute getModel();

    /**
     * Specify an inner join over the map key.
     * @return result of joining over the map key
     */
    Join, K> joinKey();

    /**
     * Specify a join over the map key using the given
     * join type.
     * @param jt  join type
     * @return result of joining over the map key
     */
    Join, K> joinKey(JoinType jt);

    /**
     * Return a path expression that corresponds to the map key.
     * @return path corresponding to map key
     */
    Path key();

    /**
     * Return a path expression that corresponds to the map value.
     * This method is for stylistic use only: it just returns this.
     * @return path corresponding to the map value
     */
    Path value();

    /**
     * Return an expression that corresponds to the map entry.
     * @return expression corresponding to the map entry
     */
    Expression> entry();
}





© 2015 - 2024 Weber Informatics LLC | Privacy Policy