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

javax.persistence.Column Maven / Gradle / Ivy

Go to download

The Java Persistence API (JPA) : a standard interface-based Java model abstraction of persistence, developed by the JCP.

There is a newer version: 2.2.4
Show newest version
/*
 * Copyright (c) 2008, 2009, 2011 Oracle, Inc. All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
 * which accompanies this distribution.  The Eclipse Public License is available
 * at http://www.eclipse.org/legal/epl-v10.html and the Eclipse Distribution License
 * is available at http://www.eclipse.org/org/documents/edl-v10.php.
 */
package javax.persistence;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;

import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

/**
 * Is used to specify the mapped column for a persistent property or field. If no Column
 * annotation is specified, the default values apply. 
* *
 *    Example 1:
 * 
 *    @Column(name="DESC", nullable=false, length=512)
 *    public String getDescription() { return description; }
 * 
 *    Example 2:
 * 
 *    @Column(name="DESC",
 *            columnDefinition="CLOB NOT NULL",
 *            table="EMP_DETAIL")
 *    @Lob
 *    public String getDescription() { return description; }
 * 
 *    Example 3:
 * 
 *    @Column(name="ORDER_COST", updatable=false, precision=12, scale=2)
 *    public BigDecimal getCost() { return cost; }
 *
 * 
* *
* @since Java Persistence 1.0 */ @Target({ANNOTATION_TYPE, METHOD, FIELD}) @Retention(RUNTIME) public @interface Column { /** * (Optional) The name of the column. Defaults to the property or field name. * @return name */ String name() default ""; /** * (Optional) Whether the column is a unique key. This is a shortcut for the UniqueConstraint * annotation at the table level and is useful for when the unique key constraint corresponds to only a * single column. This constraint applies in addition to any constraint entailed by primary key mapping * and to constraints specified at the table level. * @return whether this is unique */ boolean unique() default false; /** * (Optional) Whether the database column is nullable. * @return whether this is nullable */ boolean nullable() default true; /** * (Optional) Whether the column is included in SQL INSERT statements generated by the persistence * provider. * @return whether this is insertable */ boolean insertable() default true; /** * (Optional) Whether the column is included in SQL UPDATE statements generated by the persistence * provider. * @return whether this is updateable */ boolean updatable() default true; /** * (Optional) The SQL fragment that is used when generating the DDL for the column. *

* Defaults to the generated SQL to create a column of the inferred type. * @return column def */ String columnDefinition() default ""; /** * (Optional) The name of the table that contains the column. If absent the column is assumed to be in the * primary table. * @return table */ String table() default ""; /** * (Optional) The column length. (Applies only if a string-valued column is used.) * @return length */ int length() default 255; /** * (Optional) The precision for a decimal (exact numeric) column. (Applies only if a decimal column is * used.) Value must be set by developer if used when generating the DDL for the column. * @return precision */ int precision() default 0; /** * (Optional) The scale for a decimal (exact numeric) column. (Applies only if a decimal column is used.) * @return scale */ int scale() default 0; }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy