| /* |
| * 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: |
| // Oracle - initial API and implementation |
| package org.eclipse.persistence.platform.database.oracle.annotations; |
| |
| import java.lang.annotation.Retention; |
| import java.lang.annotation.Target; |
| |
| import org.eclipse.persistence.annotations.Direction; |
| import org.eclipse.persistence.platform.database.jdbc.JDBCTypes; |
| import org.eclipse.persistence.platform.database.oracle.plsql.OraclePLSQLTypes; |
| |
| import static java.lang.annotation.RetentionPolicy.RUNTIME; |
| |
| import static org.eclipse.persistence.annotations.Direction.IN; |
| |
| /** |
| * A PLSQLParameter annotation is used within a |
| * NamedPLSQLStoredProcedureQuery or PLSQLRecord annotation. |
| * |
| * @see NamedPLSQLStoredProcedureQuery |
| * @see PLSQLRecord |
| * @author James Sutherland |
| * @since EclipseLink 2.3 |
| */ |
| @Target({}) |
| @Retention(RUNTIME) |
| public @interface PLSQLParameter { |
| /** |
| * (Optional) The direction of the stored procedure parameter. |
| */ |
| Direction direction() default IN; |
| |
| /** |
| * (Required) Stored procedure parameter name. |
| */ |
| String name(); |
| |
| /** |
| * (Optional) The query parameter name. |
| */ |
| String queryParameter() default ""; |
| |
| /** |
| * (Optional) Define if the parameter is required, or optional and defaulted by the procedure. |
| */ |
| boolean optional() default false; |
| |
| /** |
| * (Optional) The database data-type for the paramter. |
| * This either one of the type constants defined in OraclePLSQLTypes, or JDBCTypes, |
| * or a custom record or table type name. |
| * @see PLSQLRecord |
| * @see OraclePLSQLTypes |
| * @see JDBCTypes |
| */ |
| String databaseType() default "VARCHAR_TYPE"; |
| |
| /** |
| * (Optional) The max length of the field value. |
| */ |
| int length() default 255; |
| |
| /** |
| * (Optional) If a numeric, the max scale value. |
| */ |
| int scale() default 0; |
| |
| /** |
| * (Optional) If a numeric, the max precision value. |
| */ |
| int precision() default 0; |
| } |