パッケージ jakarta.persistence

アノテーションインターフェース Column


@TargetSE({METHODSE,FIELDSE}) @RetentionSE(RUNTIMESE) public @interface Column
アノテーション付きの永続プロパティまたはフィールドによってマップされる列を指定します。

Column アノテーションが明示的に指定されていない場合は、デフォルト値が適用されます。

例 1:

例 2:

例 3:

スキーマ生成を利用するポータブルアプリケーションでは、型 numeric または decimal の列の precision()scale() を明示的に指定する必要があります。

導入:
1.0
  • オプション要素の概要

    オプション要素
    修飾子と型
    オプションの要素
    説明
    (オプション) 列に適用される制約を確認します。
    (オプション)列の DDL を生成するときに使用される SQL フラグメント。
    (オプション) 列に適用されるコメント。
    boolean
    (オプション)永続プロバイダーによって生成された SQL INSERT ステートメントに列が含まれるかどうか。
    int
    (オプション)列の長さ。
    (オプション)列の名前。
    boolean
    (オプション)データベース列が null 可能かどうか。
    (オプション) この列を宣言する、生成された DDL に追加される SQL フラグメント。
    int
    (オプション) SQL 型 decimal または numeric、あるいは同様のデータベースネイティブ型の列の精度。
    int
    (オプション) SQL 型 decimal または numeric、あるいは同様のデータベースネイティブ型の列のスケール。
    int
    (オプション) SQL time または timestamp 列に小数秒を格納するために使用する小数点以下の桁数。
    (オプション)列を含むテーブルの名前。
    boolean
    (オプション)列が一意キーであるかどうか。
    boolean
    (オプション)永続プロバイダーによって生成された SQL UPDATE ステートメントに列が含まれるかどうか。
  • 要素の詳細

    • name

      StringSE name
      (オプション)列の名前。デフォルトはプロパティ名またはフィールド名です。
      デフォルト:
      ""
    • unique

      boolean unique
      (オプション) 列が一意のキーであるかどうか。これはテーブルレベルでの UniqueConstraint アノテーションのショートカットであり、一意キー制約が単一の列のみに対応する場合に便利です。この制約は、主キーマッピングに伴う制約およびテーブルレベルで指定された制約に加えて適用されます。
      デフォルト:
      false
    • nullable

      boolean nullable
      (オプション)データベース列が null 可能かどうか。
      デフォルト:
      true
    • insertable

      boolean insertable
      (オプション)永続プロバイダーによって生成された SQL INSERT ステートメントに列が含まれるかどうか。
      デフォルト:
      true
    • updatable

      boolean updatable
      (オプション)永続プロバイダーによって生成された SQL UPDATE ステートメントに列が含まれるかどうか。
      デフォルト:
      true
    • columnDefinition

      StringSE columnDefinition
      (オプション)列の DDL を生成するときに使用される SQL フラグメント。

      推測された型の列を作成するために、デフォルトで生成された SQL になります。

      指定された DDL は、ターゲットデータベースのネイティブ SQL ダイアレクトで記述する必要があり、データベース間で移植できません。

      デフォルト:
      ""
    • options

      StringSE options
      (オプション) この列を宣言する、生成された DDL に追加される SQL フラグメント。columnDefinition() と組み合わせて使用することはできません。

      指定された DDL は、ターゲットデータベースのネイティブ SQL ダイアレクトで記述する必要があり、データベース間で移植できません。

      導入:
      3.2
      デフォルト:
      ""
    • table

      StringSE table
      (オプション)列を含むテーブルの名前。存在しない場合、列はプライマリテーブルにあると見なされます。
      デフォルト:
      ""
    • length

      int length
      (オプション)列の長さ。

      varchar 型や varbinary 型など、長さによって型がパラメーター化される列にのみ適用されます。

      デフォルト:
      255
    • precision

      int precision
      (オプション) SQL 型 decimal または numeric、あるいは同様のデータベースネイティブ型の列の精度。

      正確な数値型の列にのみ適用されます。

      デフォルト値 0 は、プロバイダーが決定した精度を推測する必要があることを示します。

      デフォルト:
      0
    • scale

      int scale
      (オプション) SQL 型 decimal または numeric、あるいは同様のデータベースネイティブ型の列のスケール。

      正確な数値型の列にのみ適用されます。

      デフォルト値 0 は、プロバイダーが決定したスケールを推測する必要があることを示します。

      デフォルト:
      0
    • secondPrecision

      int secondPrecision
      (オプション) SQL time または timestamp 列に小数秒を格納するために使用する小数点以下の桁数。

      時間またはタイムスタンプ型の列にのみ適用されます。

      デフォルト値 -1 は、秒の小数部を time 列に格納しないこと、またはデータベースと JDBC ドライバーでサポートされる最大桁数を timestamp 列に格納することを示します。

      導入:
      3.2
      デフォルト:
      -1
    • check

      (オプション) 列に適用される制約を確認します。これらは、テーブル生成が有効な場合にのみ使用されます。
      導入:
      3.2
      デフォルト:
      {}
    • comment

      StringSE comment
      (オプション) 列に適用されるコメント。これは、テーブル生成が有効な場合にのみ使用されます。
      導入:
      3.2
      デフォルト:
      ""