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

jakarta.persistence.NamedStoredProcedureQuery Maven / Gradle / Ivy

There is a newer version: 4.0.1
Show newest version
/*
 * Copyright (c) 2011, 2020 Oracle and/or its affiliates. All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v. 2.0 which is available at
 * http://www.eclipse.org/legal/epl-2.0,
 * or the Eclipse Distribution License v. 1.0 which is available at
 * http://www.eclipse.org/org/documents/edl-v10.php.
 *
 * SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
 */

// Contributors:
//     Petros Splinakis - 2.2
//     Linda DeMichiel - 2.1


package jakarta.persistence;

import java.lang.annotation.Repeatable;
import java.lang.annotation.Target;
import java.lang.annotation.Retention;
import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.RetentionPolicy.RUNTIME;  

/**
 * Specifies and names a stored procedure, its parameters, and its result type.
 *
 * 

The NamedStoredProcedureQuery annotation can be applied to an * entity or mapped superclass. * *

The name element is the name that is passed as an argument to the * {@link EntityManager#createNamedStoredProcedureQuery} * method to create an executable StoredProcedureQuery object. * Names are scoped to the persistence unit. * *

The procedureName element is the name of the stored procedure in * the database. * *

The parameters of the stored procedure are specified by the * parameters element. All parameters must be specified in the order in * which they occur in the parameter list of the stored procedure. * *

The resultClasses element refers to the class (or classes) that are * used to map the results. The resultSetMappings element names one or * more result set mappings, as defined by the {@link SqlResultSetMapping} * annotation. * *

If there are multiple result sets, it is assumed that they will be * mapped using the same mechanism — e.g., either all via a set of * result class mappings or all via a set of result set mappings. The * order of the specification of these mappings must be the same as * the order in which the result sets will be returned by the stored * procedure invocation. If the stored procedure returns one or more * result sets and no resultClasses or resultSetMappings * element is specified, any result set will be returned as a list of type * Object[]. The combining of different strategies for the mapping of * stored procedure result sets is undefined. * *

The hints element may be used to specify query properties and * hints. Properties defined by this specification must be observed by * the provider. Vendor-specific hints that are not recognized by a * provider must be ignored. * *

All parameters of a named stored procedure query must be specified * using the StoredProcedureParameter annotation. * * @see StoredProcedureQuery * @see StoredProcedureParameter * * @since 2.1 */ @Repeatable(NamedStoredProcedureQueries.class) @Target({TYPE}) @Retention(RUNTIME) public @interface NamedStoredProcedureQuery { /** * The name used to refer to the query with the {@link EntityManager} * methods that create stored procedure query objects. */ String name(); /** The name of the stored procedure in the database. */ String procedureName(); /** * Information about all parameters of the stored procedure. * All parameters must be specified in the order in which they * occur in the parameter list of the stored procedure. */ StoredProcedureParameter[] parameters() default {}; /** The class or classes that are used to map the results. */ Class[] resultClasses() default {}; /** The names of one or more result set mappings, as defined in metadata. */ String[] resultSetMappings() default {}; /** Query properties and hints. (May include vendor-specific query hints.) */ QueryHint[] hints() default {}; }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy