UML から JPA への変換プロファイルのステレオタイプ

UML から JPA への変換プロファイルには、パラメーター、プロパティー、文書、固有の関係、クラス、パッケージ、 およびモデルに適用できるステレオタイプが含まれます。 変換により、«Entity» ステレオタイプが適用されているクラス内の要素に適用されたステレオタイプのみが変換されます。
以下の表には、プロファイルのステレオタイプ、その関連するプロパティーとタイプ、および変換により生成されるコードがリストされています。
注: 変換構成で、デプロイメント記述子の生成プロパティーを true に設定する場合、変換により、Java™ コードの代わりに persistence.xml ファイル内に同等の注釈が生成されます。
ステレオタイプ 適用対象 プロパティー 制約 生成されたコード
«Entity» クラス name

catalog
schema

生成される Bean は、final キーワードを指定せず、ネスト・クラスではなく、ID を持ちます。 以下の特性を持つ Java クラス:
  • @Entity 注釈
  • ID やデフォルトのコンストラクターなどの他の Java Bean 要件
  • ステレオタイプ・プロパティーの値を指定する場合、対応する属性および指定された値を持つ @Table 注釈
«Inheritance» «Entity» ステレオタイプが適用されるクラス。 このステレオタイプは、この Entity クラスが他の Entity クラスから継承される方法を識別します。 discriminatorColumn: 判別プログラムの列を識別します。このプロパティーは、strategy プロパティーが SINGLE_TABLE に設定されているのみ使用されます。

discriminatorType: 判別プログラムとして使用される列型を識別します。
strategy: このプロパティーは InheritanceStrategy タイプです。

生成される単一テーブルには、判別プログラムの値と判別プログラム・タイプが含まれます。

他の継承戦略は、判別プログラムの値と判別プログラム・タイプを持ちません。

 
«DiscriminatorValue» 以下の特性を持つクラス:
  • «Entity» ステレオタイプが適用されている
  • 単一テーブルの継承戦略、つまり、単一テーブルの継承戦略を持つクラスから継承する
このステレオタイプは、この Entity クラスが他の Entity クラスから継承される方法を識別します。
  value プロパティーに指定された値を含む @DiscriminatorValue 注釈を持つ Entity クラス
«SequenceGenerator» «Entity» ステレオタイプが適用されているクラス、または «Entity» ステレオタイプが適用されているクラス内のプロパティー。 allocationSize

initialValue
name
sequenceName

  生成されたクラスまたはフィールドに対する @SequenceGenerator 注釈
«TableGenerator»   生成されたクラスまたはフィールドに対する @TableGenerator 注釈
«Relationship Options» «Entity» ステレオタイプが適用されている 2 つのクラス間の関連。 cascade

fetch
optional

  生成されたクラス間のエンティティー関係
«JoinColumn» «Entity» ステレオタイプが適用されている 2 つのクラス間の、多対多以外の関連または 1 対多の方向の関連。 columnDefinition

insertable
name
nullable
primaryKey
referencedColumnName
table
unique
updatable

 
  • primaryKey プロパティーが true に設定されている場合、変換により、対応する属性および指定された値を持つ @PrimaryKeyJoinColumn または @PrimaryKeyJoinColumns 注釈が生成されます
  • primaryKey プロパティーが false に設定されている場合、変換により、対応する属性および指定された値を持つ @JoinColumn または @JoinColumns 注釈が生成されます
  • 変換により、クラス間の関連のタイプに対応する注釈 (この例では @OneToOne) も生成されます
«JoinColumn»、«JoinTable»、またはその両方 «Entity» ステレオタイプが適用されている 2 つのクラス間の多対多または 1 対多の方向の関連。

catalog
inverseJoinColumns_columnDefinition
inverseJoinColumns_insertable
inverseJoinColumns_name
inverseJoinColumns_nullable
inverseJoinColumns_referencedColumnName
inverseJoinColumns_table
inverseJoinColumns_unique
inverseJoinColumns_updatable
name
schema

 
  • クラス間の関連のタイプに対応する注釈 (この例では @ManyToMany)
  • 以下の情報が含まれている @JoinTable 注釈
    • ステレオタイプ・プロパティーに対応する属性およびプロパティーに指定された値
    • «JoinColumn» ステレオタイプのプロパティーに対応する属性、およびプロパティーに指定された値
«Id» プロパティー     @Id 注釈を持つ Java フィールド。 変換では、equals および hashCode 演算子のコードも生成されます。

«Entity» ステレオタイプがプロパティーを含むクラスに適用されない場合、変換ではステレオタイプは無視されます。

同じエンティティー・クラスに複数の «Id» ステレオタイプが存在する場合、変換によって以下のものが作成されます。
  • beannamePK という主キー・クラス。このクラスには、@Embeddable 注釈があり、 生成された Java フィールドが含まれています。
  • Bean クラス内に、主キー・クラス・タイプの pk という名前のプロパティーが作成されます。 このプロパティーには、@EmbeddedID 注釈があります。

hashCode および equals 操作は、Embeddable クラス内の hashCode および equals 操作を参照します。

«Basic» «Entity» ステレオタイプが適用されているクラス内のプロパティー fetch

optional

  ステレオタイプ内のプロパティーのすべてに値を指定するプロパティーの @Basic 注釈
«Column» columnDefinition

insertable
length
name
nullable
precision
scale
table
unique
updatable

  ステレオタイプのプロパティーすべてに値を指定するプロパティーの @Column 注釈
«Enumerated»   ステレオタイプのプロパティーすべてに値を指定するプロパティーの @Enumerated 注釈
«GeneratedValue» generated

strategy

  生成されたフィールドに対する @GeneratedValue 注釈、およびステレオタイプ・プロパティーで指定された値を持つ対応する属性
«Lob»     生成されたフィールドに対する @Lob 注釈

«Basic» ステレオタイプがモデル内のプロパティーに適用されない場合、変換によって @Basic 注釈が追加され、プロパティーの型が FetchTypeLazy に設定されます

«Temporal»   生成されたフィールドの @Temporal 注釈
«Callback» «Entity» ステレオタイプが適用されているクラス内の操作 値 (Callback 型の配列を指定します)   操作に対して選択する値に対応する注釈
«Datasource» アクター     メッセージ駆動型 Bean およびセッション Bean から、ステレオタイプが指定するデータ・ソースへの参照

フィードバック