Cosminexus アプリケーションサーバ V8 リファレンス API編

[目次][索引][前へ][次へ]

2.6 javax.persistenceパッケージ

javax.persistenceパッケージに含まれるアノテーションの一覧およびアノテーションを指定する際の注意事項について説明します。

なお,マッピング情報はアノテーションの代わりにO/Rマッピングファイルで指定することもできます。アノテーションとO/Rマッピングファイルとの対応については,「2.6.64 アノテーションとO/Rマッピングとの対応」を参照してください。

アノテーションを指定する際の注意事項
  • Cosminexus JPAでは,DDL出力機能に関連する属性に対応していません。
  • アノテーションで同じカラム名を複数指定する場合は,大文字および小文字をそろえて指定してください。
  • フィールド名またはメソッド名をカラム名に割り当てた場合,Cosminexus JPAでは文字列を大文字として扱います。対応するアノテーションでカラム名を指定する場合は,大文字にしてください。
  • アクセスタイプは,アノテーションを付与する場所によって決まります。ただし,アクセスタイプがフィールドとプロパティで混在した場合は,フィールドの設定が有効になります。
  • プロパティ名は,アクセサメソッドのgetまたはset(is)を除いた文字列によって次のように決まります。
    ・最初の二文字が大文字の場合,そのままの文字列になります。
    ・最初の二文字が大文字ではない場合,最初の文字を小文字に変換した文字列になります。
    ・一文字の場合,最初の文字を小文字に変換した文字列になります。

アノテーション一覧
アノテーションの区分 アノテーション名 概要
エンティティのアノテーション @Entity クラスがエンティティであることを示します。
テーブル・カラム関連のアノテーション @Column 永続化フィールドまたは永続化プロパティと,データベース上のカラムとのマッピングを指定します。
@JoinColumn エンティティクラス間の関連づけで,結合表のための外部キーカラムまたは外部キーカラムから参照された,結合先テーブルのカラムを指定します。
@JoinColumns @JoinColumnを複数同時に記述する場合に使用します。
@JoinTable 次のクラスに設定する結合表を指定するアノテーションです。
  • ManyToManyリレーションシップを指定する場合の所有者側のクラス
  • 片方向のOneToManyリレーションシップを持つクラス
@PrimaryKeyJoinColumn ほかのテーブルと結合する場合に,外部キーとして使われるカラムを指定します。
@PrimaryKeyJoinColumns @PrimaryKeyJoinColumnを複数同時に記述する場合に使用します。
@SecondaryTable エンティティクラスにセカンダリテーブルを指定します。
@SecondaryTables @SecondaryTableを複数同時に記述する場合に使用します。
@Table エンティティクラスにプライマリテーブルを指定します。
@UniqueConstraint プライマリテーブルまたはセカンダリテーブルに対して,CREATE文を生成する場合にユニーク制約を含めることを指定します。
なお,このアノテーションは,Cosminexus JPAプロバイダには対応していません。
ID関連のアノテーション @EmbeddedId 埋め込み可能クラスの複合プライマリキーであることを指定します。
@GeneratedValue プライマリキーカラムにユニークな値を自動で生成,付与する方法を指定します。
@Id エンティティクラスのプライマリキーのプロパティ,またはフィールドであることを指定します。
@IdClass エンティティクラスの複数のフィールドまたはプロパティへマップされた複合プライマリキークラスを指定します。
@SequenceGenerator プライマリキーを作成するシーケンスジェネレータの設定を指定します。
@TableGenerator プライマリキーを作成するジェネレータの設定を指定します。
ロックのアノテーション @Version 楽観的ロック機能を使用するために用いるversionフィールドまたはversionプロパティを指定します。
マッピング関連のアノテーション @Basic 最も単純なデータベースのカラムへのマッピングの型を示します。
@Embeddable 埋め込みクラスであることを指定します。
@Embedded 埋め込み先のエンティティクラス内で,埋め込みクラスのインスタンス値を示す永続化プロパティまたは永続化フィールドであることを指定します。
@Enumerated 永続化フィールドまたは永続化プロパティを列挙型として指定します。
@Lob データベースがサポートしているlargeオブジェクト型の永続化フィールドまたは永続化プロパティであることを指定します。
@MapKey OneToManyリレーションシップ,またはManyToManyリレーションシップで,被所有者側のエンティティクラスがjava.util.Map型で示される場合にマップ内のオブジェクト識別に用いられるマップキーを指定します。
@OrderBy エンティティの情報を取得するとき,コレクションが評価した順番を指定します。
@Temporal 時刻を表す型(java.util.Dateおよびjava.util.Calendar)を持つ永続化プロパティまたは永続化フィールドに指定します。
@Transient 永続化しないエンティティクラス,マップドスーパークラス,または埋め込みクラスのフィールドまたはプロパティであることを指定します。
リレーション関連のアノテーション @ManyToMany 指定したクラスがManyToManyリレーションシップであることを示し,所有者側のエンティティクラスから被所有者側のエンティティクラスへの複数の関連を指定します。
@ManyToOne 指定したクラスがManyToOneリレーションシップであることを示し,被所有者側のエンティティクラスへの関連を指定します。
@OneToMany 指定したクラスがOneToManyリレーションシップであることを示し,所有者側のエンティティクラスから被所有者側のエンティティクラスへの複数の関連を指定します。
@OneToOne 指定したクラスがOneToOneリレーションシップであることを示し,エンティティクラス間の一つの関連を指定します。
継承・オーバーライド関連のアノテーション @AssociationOverride マップドスーパークラスや埋め込みクラスで指定された,ManyToOneリレーションシップまたはOneToOneリレーションシップで使用する設定をオーバーライドします。
@AssociationOverrides @AssociationOverrideを複数同時に記述する場合に使用します。
@AttributeOverride 次に示すマッピング情報をオーバーライドします。
  • @Basicが指定された(またはデフォルトで適用された)プロパティ,フィールド
  • @Idで指定されたプロパティ,フィールド
@AttributeOverrides @AttributeOverrideを複数同時に記述する場合に使用します。
@DiscriminatorColumn SINGLE_TABLE戦略またはJOINED戦略で使用する識別用カラムを指定します。
エンティティクラスの継承で,スーパークラスとなるエンティティクラスに付与します。
@DiscriminatorValue SINGLE_TABLE戦略またはJOINED戦略で使用する識別用カラムの値を指定します。
@Inheritance エンティティクラス階層で使われる継承マッピング戦略を指定します。
@MappedSuperclass マップドスーパークラスであることを指定します。
クエリ関連のアノテーション @ColumnResult SQLのクエリ結果をエンティティクラスとマッピングするためのカラムを指定します。
@EntityResult SQLのクエリ結果をマッピングするエンティティクラスを指定します。
@FieldResult SQLのクエリ結果をマッピングするフィールドを指定します。
@NamedNativeQueries @NamedNativeQueryを複数同時に記述する場合に使用します。
@NamedNativeQuery SQLで名前付きクエリを指定します。
@NamedQueries @NamedQueryを複数同時に記述する場合に使用します。
@NamedQuery JPQLの名前付きクエリを指定します。
@QueryHint データベース固有のクエリのヒントを指定します。
@SqlResultSetMapping SQLのクエリの結果セットマッピングを指定します。
@SqlResultSetMappings @SqlResultSetMappingを複数同時に記述する場合に使用します。
イベント・コールバック関連のアノテーション @EntityListeners エンティティクラスまたはマップドスーパークラスで使用されるコールバックリスナクラスを指定します。
@ExcludeDefaultListeners 次に示すクラスに対して,デフォルトリスナを抑止するアノテーションです。
  • エンティティクラス
  • マップドスーパークラス
  • エンティティクラスまたはマップドスーパークラスのサブクラス
@ExcludeSuperclassListeners 次に示すクラスに対して,スーパークラスリスナを抑止するアノテーションです。
  • エンティティクラス
  • マップドスーパークラス
  • エンティティクラスまたはマップドスーパークラスのサブクラス
@PostLoad データベースにSELECT文を発行したあとに呼び出されるコールバックメソッドであることを示すアノテーションです。
@PostPersist データベースにINSERT文を発行したあとに呼び出されるコールバックメソッドであることを示すアノテーションです。
@PostRemove データベースにDELETE文を発行したあとに呼び出されるコールバックメソッドであることを示すアノテーションです。
@PostUpdate データベースにUPDATE文を発行したあとに呼び出されるコールバックメソッドであることを示すアノテーションです。
@PrePersist データベースにINSERT文を発行する前に呼び出されるコールバックメソッドであることを示すアノテーションです。
@PreRemove データベースにDELETE文を発行する前に呼び出されるコールバックメソッドであることを示すアノテーションです。
@PreUpdate データベースにUPDATE文を発行する前に呼び出されるコールバックメソッドであることを示すアノテーションです。
EntityManagerとEntityManagerFactoryのリファレンス関連のアノテーション @PersistenceContext コンテナ管理のEntityManagerを定義します。
@PersistenceContexts @PersistenceContextを複数同時に記述する場合に使用します。
@PersistenceProperty コンテナ管理のEntityManagerにプロパティを設定します。
@PersistenceUnit EntityManagerFactoryへの永続化ユニットを定義します。
@PersistenceUnits @PersistenceUnitを複数同時に記述する場合に使用します。

注※ コールバックメソッドの詳細については,マニュアル「Cosminexus アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「6.15 コールバックメソッドの指定方法」を参照してください。


<この節の構成>
2.6.1 @AssociationOverride
2.6.2 @AssociationOverrides
2.6.3 @AttributeOverride
2.6.4 @AttributeOverrides
2.6.5 @Basic
2.6.6 @Column
2.6.7 @ColumnResult
2.6.8 @DiscriminatorColumn
2.6.9 @DiscriminatorValue
2.6.10 @Embeddable
2.6.11 @Embedded
2.6.12 @EmbeddedId
2.6.13 @Entity
2.6.14 @EntityListeners
2.6.15 @EntityResult
2.6.16 @Enumerated
2.6.17 @ExcludeDefaultListeners
2.6.18 @ExcludeSuperclassListeners
2.6.19 @FieldResult
2.6.20 @GeneratedValue
2.6.21 @Id
2.6.22 @IdClass
2.6.23 @Inheritance
2.6.24 @JoinColumn
2.6.25 @JoinColumns
2.6.26 @JoinTable
2.6.27 @Lob
2.6.28 @ManyToMany
2.6.29 @ManyToOne
2.6.30 @MapKey
2.6.31 @MappedSuperclass
2.6.32 @NamedNativeQueries
2.6.33 @NamedNativeQuery
2.6.34 @NamedQueries
2.6.35 @NamedQuery
2.6.36 @OneToMany
2.6.37 @OneToOne
2.6.38 @OrderBy
2.6.39 @PersistenceContext
2.6.40 @PersistenceContexts
2.6.41 @PersistenceProperty
2.6.42 @PersistenceUnit
2.6.43 @PersistenceUnits
2.6.44 @PostLoad
2.6.45 @PostPersist
2.6.46 @PostRemove
2.6.47 @PostUpdate
2.6.48 @PrePersist
2.6.49 @PreRemove
2.6.50 @PreUpdate
2.6.51 @PrimaryKeyJoinColumn
2.6.52 @PrimaryKeyJoinColumns
2.6.53 @QueryHint
2.6.54 @SecondaryTable
2.6.55 @SecondaryTables
2.6.56 @SequenceGenerator
2.6.57 @SqlResultSetMapping
2.6.58 @SqlResultSetMappings
2.6.59 @Table
2.6.60 @TableGenerator
2.6.61 @Temporal
2.6.62 @Transient
2.6.63 @Version
2.6.64 アノテーションとO/Rマッピングとの対応