欠落しているステレオタイプについての情報を「問題」ビューで確認してください。
UML から JPA への変換のソースとして、次の要素を指定できます。
この変換では、UML モデル、パッケージ、クラス、およびインターフェースのコンテンツを変換します。 例えば、この変換によってクラスが変換された場合、 そのクラスの操作とプロパティーも変換されます。
変換構成エディターを使用しないで、「プロジェクト・エクスプローラー」ビューでモデルまたはモデル要素を選択した場合は、その選択したモデルまたは要素により、変換構成で指定されたソース・モデルまたは要素がオーバーライドされます。 変換構成は影響を受けず、変換構成エディターまたは「新規変換構成」ウィザードの「ソースとターゲット」ページで指定したソースも変更されません。
変換により、JPA プロジェクトまたは Java プロジェクトへの出力、あるいは JPA プロジェクトまたは Java プロジェクトのソース・フォルダーを生成できます。JPA プロジェクトは、クライアント・プロジェクト付きでもなしでも作成できます。この変換は、JPA プロジェクトの最初の検出されたソース・フォルダー内と、クライアント・プロジェクトの最初に検出されたソース・フォルダーがあればそこにもコードを生成します。
変換を構成してデプロイメント記述子を生成する場合、パーシスタンス・ファイルにすべての JPA 注釈が生成されますが、Java コードには JPA 注釈が生成されません。
UML から JPA への変換を使用して、生成された Java クラスから UML ソース要素へのトレース関係を作成できます。その後、モデル照会を作成および実行して、トピック図内にそのトレース関係を表示することができます。
トレース関係の作成は、複数のモデルおよび複数の変換構成を持つような大規模なプロジェクトの場合に便利です。 また、変換出力がソフトウェアの仕様やモデル要素とどのように関係しているかを表示する、追跡可能性照会を作成および実行することもできます。
変換を再実行すると、必要に応じて、ソース・コード内の ID を 使用して、対応する要素がマッチングされ、モデルに対する変更内容を反映するためにコードが変更されます。例えば、ソース・モデル内の UML 操作の名前を変更して変換を再実行すると、変換により前に生成された Java メソッドが削除されて新規メソッドが追加されるのではなく、前に生成されたメソッドの名前が変更され、メソッドの本文が保持されます。
JPA から UML への変換、または後方変換でも、ID を使用して Java プロジェクトと UML モデル間の対応する要素をマッチングすることができます。この方法を使用すると、Java ソース・コード要素に対する変更は、生成されたコードの追加や削除ではなく、変更として、またはコードのリファクタリングとして扱われます。
| UML 要素 | 変換出力 | クラス図のトレース関係 |
|---|---|---|
![]() |
/**
*
*/
import javax.persistence.Id;
import javax.persistence.NamedQuery;
import javax.persistence.Entity;
import java.io.Serializable;
/**
* <!-- begin-UML-doc -->
* <!-- end-UML-doc -->
* @uml.annotations
* derived_abstraction="platform:/resource/Miscellaneous%20Models/Blank%20Package1.emx#_sQ4U4J-QEd2RedZBNurApQ"
* @generated "sourceid:platform:/resource/Miscellaneous%20Models/Blank%20Package1.emx#_sQ4U4J-QEd2RedZBNurApQ"
*/
@Entity
@NamedQuery(name = "EntityClass.findByid", query = "select obj from EntityClass where obj.id = :id")
public class EntityClass implements Serializable {
/**
* <!-- begin-UML-doc -->
* <!-- end-UML-doc -->
* @generated "sourceid:platform:/resource/Miscellaneous%20Models/Blank%20Package1.emx#_sRjDQZ-QEd2RedZBNurApQ"
*/
@Id
private Integer id;
/**
* @return the id
* @generated "sourceid:platform:/resource/Miscellaneous%20Models/Blank%20Package1.emx#_sRjDQZ-QEd2RedZBNurApQ?GETTER"
*/
public Integer getId() {
// begin-user-code
return id;
// end-user-code
}
/**
* @param id the id to set
* @generated "sourceid:platform:/resource/Miscellaneous%20Models/Blank%20Package1.emx#_sRjDQZ-QEd2RedZBNurApQ?SETTER"
*/
public void setId(Integer id) {
// begin-user-code
this.id = id;
// end-user-code
}
/**
/**
* <!-- begin-UML-doc -->
* <!-- end-UML-doc -->
* @generated "sourceid:platform:/resource/Miscellaneous%20Models/Blank%20Package1.emx#_s0NrcJ-QEd2RedZBNurApQ"
*/
public void Operation1() {
// begin-user-code
// TODO 自動生成されたメソッド・スタブ
// end-user-code
}
/**
* <!-- begin-UML-doc -->
* <!-- end-UML-doc -->
* @generated
*/
private static final long serialVersionUID = 0;
/**
* <!-- begin-UML-doc -->
* <!-- end-UML-doc -->
* @generated
*/
public EntityClass() {
}
|
![]() |
変換によってトレース関係を生成するように指定した場合には、ソース・モデルは変換によって変更されません。