ヘッダーをスキップ
Oracle® Fusion Middleware Oracle JDeveloperユーザーズ・ガイド
11g リリース2 (11.1.2.1.0)
B66717-01
  目次へ移動
目次

前
 
次
 

23 モデル化によるJava EEおよびJavaアプリケーションの開発

この章では、Oracle JDeveloperに組み込まれている最新のモデル化ツールとテクノロジを使用した、Java EEおよびJavaアプリケーション・ダイアグラムでの作業方法について説明します。

この章では、次の項目について説明します。

23.1 モデル化によるJava EEおよびJavaアプリケーションの開発

Oracle JDeveloperには、Java EEおよびJavaアプリケーション・システムをモデル化するための各種ダイアグラム・ツールが用意されています。

23.2 ビジネス・コンポーネント・ダイアグラム

ビジネス・コンポーネント・ダイアグラムを使用して、エンタープライズ・アプリケーション内のビジネス・エンティティとオブジェクトを視覚化および編成します。

詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』のビジネス・レイヤーのエンティティ・ダイアグラムの作成に関する項を参照してください。

23.3 ダイアグラムでのEJB/JPAコンポーネントのモデル化

Enterprise JavaBeans (EJB)のモデル化により、EJBエンティティ関連およびアーキテクチャを視覚化し、プロパティおよびメソッドを移入できるBeanのセットを迅速に作成し、またそのBeanおよびBean間の関連と参照のグラフィカル表示を作成できます。Beanがモデル化されると、基礎となる実装ファイルも常に作成されます。

EJBをモデル化するため、EJBダイアグラムの作成を開始します。詳細は、「新規ダイアグラムの作成手順」を参照してください。UMLクラス、Javaクラス、ビジネス・コンポーネント、オフライン・データベース表、UMLユースケース、Webサービスなどの他の要素は、後で同じダイアグラムに追加できます。詳細は、「ダイアグラム要素での作業方法」を参照してください。

エンティティBean、セッションBeanおよびメッセージドリブンBeanについて

Enterprise JavaBeansは、ダイアグラムのEJBコンポーネント・パレットで「エンティティBean」アイコン、「セッションBean」アイコンまたは「メッセージドリブンBean」アイコンを使用して、要素を作成するダイアグラムをクリックすることで、ダイアグラム上に作成されます。モデル化された要素の実装ファイルは、プロジェクト設定で指定された場所に作成されます。


ヒント:

ダイアグラムでモデル化されたBeanの実装Javaクラスをモデル化する場合は、モデル化されたBeanを右クリックし、実装ファイルを表示を選択します。

プロパティとメソッドを追加するには、BeanをダブルクリックしてEJBモジュール・エディタでプロパティまたはメソッドを追加するか、モデル化されたBean自体で新規のプロパティまたはメソッドをインプレースで作成します。詳細は、第23.3.5項「プロパティおよびメソッドのモデル化」を参照してください。

Bean間の関連

一方のBeanからリモート・インタフェースを持つ他方のBeanへの参照は、「EJB参照」アイコンを使用して作成できます。一方のBeanからローカル・インタフェースを持つ他方のBeanへのローカル参照は、ダイアグラムのEJBコンポーネント・パレットの「EJBローカル参照」アイコンを使用して作成できます。詳細は、第23.3.6項「コンポーネント間参照のモデル化の方法」を参照してください。

モデル化されたエンティティBean間の様々な関連を迅速に作成するには、ダイアグラムのEJBコンポーネント・パレットの1対*の関係アイコン、有向1対1関係アイコン、有向1対*関係アイコンおよび「有向厳密集約」アイコンを使用します。詳細は、第23.3.3項「JPA関係のモデル化方法」を参照してください。


注意:

ダイアグラムに表示される項目の実装ファイルを変更、追加または削除すると、その変更はその要素のモデル化された表現にも反映されます。逆に、モデル化されたEnterprise JavaBeansに対する変更は、基礎になる実装ファイルにも適用されます。

ノート、依存関連およびURLリンクを使用して、Enterprise JavaBeansのダイアグラムに注釈を付けることができます。

23.3.1 EJB/JPAコンポーネントのダイアグラムの作成

エンティティBean、セッションBeanおよびメッセージドリブンBean、各Beanのプロパティとメソッドの関連は、すべてEJBダイアグラムでグラフィカルにモデル化できます。EJBダイアグラムは、UMLクラス、Javaクラス、UMLユースケース、オフライン・データベース・オブジェクト、ビジネス・コンポーネントおよびWebサービスのモデル化にも使用されます。

Javaクラスのダイアグラムを作成するには、次のようにします。

  1. 「新規ギャラリ」でプロジェクトまたはアプリケーションの新規EJBダイアグラムを作成します。

  2. EJBコンポーネント・パレットを使用して、ダイアグラムの要素を作成します。表23-1には、EJBコンポーネント・パレットが表示されています。

    表23-1 EJBコンポーネント・パレットのアイコン

    ドロップダウン・リスト アイコン 名前

    EJBノード

    エンティティ


    エンティティ


    メッセージドリブンBean


    メッセージドリブンBean


    セッションBean


    セッションBean

    エンティティ関連

    双方向の*対*関係


    双方向の*対*関係


    双方向の*対1関係


    双方向の*対1関係


    双方向の1対1関係


    双方向の1対1関係


    一方向の*対*関係


    一方向の*対*関係


    一方向の*対1関係


    一方向の*対1関係


    一方向の1対*関係


    一方向の1対*関係


    一方向の1対1関係


    一方向の1対1関係

    EJBエッジ

    エンティティ継承エッジ


    エンティティ継承エッジ


    セッション・ファサード・エッジ


    セッション・ファサード・エッジ

    ダイアグラムの注釈

    添付


    添付


    グループ


    グループ


    Link


    Link


    ノート


    ノート


ノートをダイアグラム要素に添付し、ダイアグラムに注釈を付けることができます。詳細は、第22章の「ダイアグラムの注釈の使用方法」を参照してください。

23.3.2 EJB/JPAコンポーネント・ダイアグラムの読み方

セッションBean、エンティティBeanおよびメッセージドリブンBeanはすべて、JDeveloperでモデル化できます。モデル化されたセッションBeanとエンティティBeanは、複数のコンパートメントで構成されます。たとえば、メッセージドリブンBeanに含まれるのは、«message-driven bean»ステレオタイプおよびBeanの名前を含む名前コンパートメントのみです。EJB 3.0 Beanでは、インタフェースのコンパートメントがないため、モデルの外観は異なります。

図23-1 EJB/JPAコンポーネント・ダイアグラム

EJB/JPAコンポーネント・ダイアグラム

Bean間の関連とコネクタに注意してください。一方のBeanからリモートまたはローカル・インタフェースを持つ他方のBeanへの参照を作成できます。参照をモデル化できるのは、現在のデプロイメント・ディスクリプタ内にあるBean間のみです。

23.3.3 JPA関連のモデル化の方法

関連コンポーネントをパレットからドラッグして、1つのクラス図での2つのエンティティ間の関連をモデル化できます。また、ルート・エンティティと子エンティティの間の継承エッジも表示できます。関連の両端のエンティティに、コンテナ管理の永続性とローカル・インタフェースが必要です。

1つのダイアグラムで2つの関連をモデル化するには、次のようにします。

  1. EJBコンポーネント・パレットにリストされている関連から、作成する関連のアイコンをクリックします。


    注意:

    関連の端のナビゲーション性および多重度は、作成後に変更できます。これらのアイコンが表示されない場合は、コンポーネント・パレットのドロップダウン・リストから「EJBコンポーネント」を選択してください。

  2. 関連の「所有する」または「元」側のエンティティをクリックします。


    注意:

    コンテナ管理関連(CMR)フィールドを使用してこの関連を表示する場合、これは、フィールドが作成されるBeanになります。

  3. 関連の「先」側のエンティティBeanをクリックします。

  4. ダイアグラム上の関連を示す線をクリックし、アソシエーションに隣接するテキスト・フィールドをクリックして、関連名を入力します。


    注意:

    ダイアグラム上の関連の端の多重度を変更するには、その関連の端を右クリックして、「多重度→1」または「多重度→*」を選択します。

23.3.4 ダイアグラムでのEJB/JPAコンポーネントのモデル化の方法

エンティティBean、セッションBeanおよびメッセージドリブンBeanはすべて、JDeveloperのダイアグラム機能を使用してモデル化できます。プロパティとメソッドもモデル化できます。

  • エンティティBeanは、コンテナ管理の永続性(CMP)またはBean管理の永続性(BMP)になります。Bean管理の永続性を使用してエンティティBeanを作成する前に、そのエンティティBean間の関連を作成する必要があるかどうかを検討することもできます。関連は、コンテナ管理の永続性を持つエンティティBean間にのみ作成できます。

  • セッションBeanのセッション・タイプをクラス図で変更するには、セッションBeanを右クリックし、「セッション・タイプ」、次に「ステートフル」、または「セッション・タイプ」、次に「ステートレス」を選択します。

  • メッセージドリブンBeanは、(EJB参照を使用して)セッションBeanおよびエンティティBeanと対話するために最も頻繁に使用されます。

23.3.5 プロパティおよびメソッドのモデル化

モデル化されたEJBにプロパティとメソッドを追加するには、BeanをダブルクリックしてEJBモジュール・エディタでプロパティまたはメソッドを追加するか、モデル化されたBeanで新規のプロパティまたはメソッドを直接作成します。

23.3.5.1 モデル化されたBeanでのプロパティの作成

モデル化されたBeanで直接プロパティを作成するには、プロパティの名前とデータ型を入力します。次に例を示します。

name : java.lang.String

Public (+)可視性の記号が、プロパティの先頭に自動的に追加されます。


注意:

StringまたはLongなどのパッケージ接頭辞を付けずにjava.langパッケージからのプロパティ・タイプを入力すると、java.lang.プロパティ・タイプ接頭辞が自動的に追加されます。プロパティのタイプが指定されていない場合は、デフォルト・タイプ'String' (java.lang.String)が使用されます。

23.3.5.2 モデル化されたBeanでのメソッドの作成

クラス・ダイアグラム上で、モデル化されたBeanにローカル/リモートおよびローカル/ローカル・ホームの両方のメソッドを作成できます。Beanでメソッドをモデル化すると、対応するコードも実装Javaクラス内に作成されます。

モデル化されたBeanにインプレースでメソッドを作成するには、名前を入力し、オプションでパラメータ型と名前およびメソッドの戻り型を入力します。メソッドの戻り型の前には、コロン(:)を付ける必要があります。次に例を示します。

getName(String CustNumber) : java.lang.String

Public (+)可視性の記号が、メソッドの先頭に自動的に追加されます。


注意:

StringまたはLongなど、パッケージ接頭辞を付けずにjava.langパッケージからの戻り型を入力すると、戻り型接頭辞java.lang.がメソッドのクラスのJavaに自動的に追加されます。パラメータ・タイプが指定されていない場合、メソッドはパラメータなしで定義されます。戻り型が指定されていない場合は、デフォルトの戻り型voidが使用されます。メソッドのプロパティを変更するには、ダイアグラムまたはナビゲーション・ペインでクラスをダブルクリックし、EJBエディタを使用してメソッドの詳細を変更します。

23.3.6 クロス・コンポーネント参照のモデル化の方法

クラス・ダイアグラム上で、モデル化されたBean間に参照を作成できます。

  • 一方のBeanからリモート・インタフェースを持つ他方のBeanへのEJB参照を作成できます。

  • 一方のBeanからローカル・インタフェースを持つ他方のBeanへのEJBローカル参照を作成できます。


注意:

参照を作成できるのは、現在のデプロイメント・ディスクリプタ内にあるBeanに対してのみです。

モデル化されたBean間の参照をモデル化するには、次のようにします。

  1. EJBコンポーネント・パレットにリストされている参照から、作成する参照のアイコンをクリックします。

    • EJB参照

    • EJBローカル参照


    注意:

    これらのアイコンが表示されない場合は、コンポーネント・パレットのリストから「EJB」を選択してください。

  2. 参照の「所有」または「元」側のBeanをクリックします。

  3. 参照の「先」側のBeanをクリックします。

23.3.7 モデル化されたBeanの実装ソース・コードの表示方法

モデル化された各Beanには、その要素の実装コードを含む基礎となるJavaソース・ファイルがあります。これらの実装ファイルは、モデル化されたJavaクラスとしてダイアグラムに表示できます。

モデル化されたBeanのモデル化された実装Javaクラスを表示するには、次のようにします。

  • ダイアグラムでJava実装をモデル化するBeanを選択し、「モデル」「表示」「実装ファイル」の順に選択します。

  • または、ダイアグラムでJava実装をモデル化するダイアグラム上のBeanを右クリックし、実装の表示、次に「ファイル」を選択します。

23.3.8 モデル化されたBeanのソース・コードの表示方法

モデル化されたBeanのJavaソース・コードは、ダイアグラムのシンプル・コマンドでソース・エディタに表示できます。

モデル要素のJavaソース・コードを表示するには、次のようにします。

  • ダイアグラムの要素を右クリックします。「ソースに移動」を選択し、表示するソース・ファイルを選択します。

  • または、ダイアグラム上の要素を選択します。「モデル」「ソースに移動」を選択します。

23.3.9 プロパティまたはメソッドのアクセス・レベルの変更方法

モデル化されたBeanのプロパティまたはメソッドのアクセス・レベルは、シンプル・コマンドを使用してダイアグラム上で変更できます。

プロパティまたはメソッドのアクセス・レベルを変更するには、次のようにします。

  1. 変更するプロパティまたはメソッドを右クリックします。

  2. ポップアップ・メニューの「次からアクセスが可能」オプションから、必要なアクセス・レベル・オプションを選択します。

    アクセス・レベル・オプションは次のとおりです。

    • ローカル・インタフェース

    • リモート・インタフェース

    • ローカル・インタフェースとリモート・インタフェース

23.3.10 ダイアグラムでのJPAエンティティのリバース・エンジニアリングの方法

モデル化されたエンティティBeanは、EJBのダイアグラム上で、アプリケーションのデータベース接続を介して表定義からリバース・エンジニアリングできます。

表定義をエンティティBeanにリバース・エンジニアリングするには、次のようにします。

  1. ダイアグラムを開く、または作成します。

  2. データベース接続の接続ナビゲータでノードを展開します。

  3. ユーザー・ノードを展開した後、「表」ノードを展開します。

  4. エンティティBeanの作成に使用する表定義をクリックし、現在のダイアグラムにドラッグします。

    複数の表をエンティティBeanにリバース・エンジニアリングするには、[Ctrl]キーを押しながら、リバース・エンジニアリングする表をナビゲータで選択し、その表をダイアグラムにドラッグした後、[Ctrl]キーを放します。

  5. EJBバージョンを選択し、「OK」をクリックします。

23.4 Javaクラス図

Javaクラス図の機能を使用して、Java EEのJavaクラスとクラス・システムをモデル化します。詳細は、第22章「クラス図の使用方法」を参照してください。

23.5 データベース・ダイアグラム

データベース構造をモデル化すると、オンラインまたはオフライン・データベースに保存されている表の間の関連とデータベース・スキーマをビジュアルに表示できます。変換機能を使用すると、データベース表をJavaクラスとインタフェースに、またその逆に変換できます。データベースの変換方法の詳細は、第22章の「Javaクラスおよびインタフェースの変換」を参照してください。

23.5.1 データベースのモデル化機能の使用方法

JDeveloperを使用して、オフライン・データベース・オブジェクトを、稼働中のデータベース接続のデータベース・オブジェクトと同様にモデル化できます。また、表や外部キー関係などのデータベース・オブジェクトをダイアグラム上で作成し、それをオンラインまたはオフライン・データベースに統合できます。

データベース・ダイアグラムを使用して、表および外部キー関係、ビューおよび結合オブジェクト、マテリアライズド・ビュー、シノニム、およびシーケンスなどの図コンポーネント上で直接作成、およびビジネス・エンティティ構造と関係を表示できます。

作成した新規オブジェクトと同様、オンラインまたはオフライン・データベースのすべてのデータベース・オブジェクトはアプリケーション・ナビゲータに表示されます。

23.5.1.1 データベースのモデル化のメリット

アプリケーション・ナビゲータおよびコンポーネント・パレットを使用して、オフラインおよび稼働中のオンライン・データベース・オブジェクトを追加または作成します。

データベース・ダイアグラムは、次の目的で使用します。

  • 表およびその列を作成および視覚化します。

  • 表の間の外部キー関係を作成および視覚化します。

  • ビュー、マテリアライズド・ビュー、およびマテリアライズド・ビュー・ログを作成および視覚化します。

  • 順序とシノニムを作成および視覚化します。

また、テンプレートに基づいて、ダイアグラム上にデータベース・オブジェクトを作成できます。

23.5.1.2 データベースのモデル化の開始方法

「新規ギャラリ」を使用してデータベースを作成します。「新規ダイアグラムの作成方法」を参照してください。図23-2に示すとおり、データベース・ダイアグラムは、作成後にコンポーネント・パレットで使用可能なコンポーネントから選択できます。

図23-2 データベース・コンポーネント・パレット

データベース・コンポーネント・パレット

ダイアグラムにオフライン・データベース・オブジェクトを作成するには、データベース・オブジェクト・コンポーネント・パレットで該当するアイコンをクリックし、オブジェクトの作成先であるダイアグラムをクリックします。データベース・ナビゲータでデータベース接続からオブジェクトをドラッグするか、アプリケーション・ナビゲータでオフライン・スキーマからダイアグラム上にオブジェクトをドラッグすることもできます。

アクティビティ図を除くと、どのタイプのダイアグラムのオンラインまたはオフライン表でもモデル化できます。また、同じダイアグラム上にUMLクラス、Javaクラス、ビジネス・コンポーネント、Enterprise JavaBeans、UMLユースケースおよびWebサービスなど、その他の要素を追加できます。

テンプレートに基づき、オフライン・データベース・オブジェクトをダイアグラム上に作成できます。最初にオブジェクトを新規データベース・ダイアグラムに追加する際、「場所の指定」ダイアログが表示され、ここでオブジェクトがプロジェクトのオフライン・データベース・オブジェクトであるか、データベース接続のデータベース・オブジェクトであるかを指定します。テンプレートに基づいてオフライン・データベース・オブジェクトを作成する場合は、一連のテンプレートを同時に作成できます。

モデリングされたオブジェクトをダブルクリックして該当する編集ダイアログを表示するか、モデリングされたオブジェクトに新規要素を作成することで、オブジェクトを定義する要素を追加できます。

ノート、依存関係およびURLリンクを使用してデータベース・オブジェクトのダイアグラムに注釈を作成できます。

ダイアグラム上に表示された定義に対して変更、追加、削除などを行う場合は、これらの変更はデータベース・オブジェクトのモデル化された表示に反映されます。逆に、モデル化されたデータベース・オブジェクトへの変更は、基礎となる定義に対しても行われます。

外部キー

外部キーはモデリング表間で迅速に作成できます。そのためには、データベース・コンポーネント・パレット上の「外部キー」をクリックし、外部キーの作成元の表をクリックし、外部キーの宛先表をクリックします。「外部キーの作成」ダイアログを使用すると、ターゲット表の既存の列を選択するか、新しい列を作成できます。

結合オブジェクト

ビューで2つ表の使用方法の間に結合オブジェクトを作成するには、データベース・コンポーネント・パレットの「結合オブジェクト」をクリックして、結合する2つの表の使用方法をクリックします。「結合の編集」ダイアログでは、結合を指定できます。

マテリアライズド・ビュー

マテリアライズド・ビューをダイアグラム上に作成するには、はデータベース・コンポーネント・パレットの「マテリアライズド・ビュー」をクリックして、マテリアライズド・ビューの作成先のダイアグラムをクリックします。また、マテリアライズド・ビューは、JDeveloperで定義されているデータベース接続、またはアプリケーション・ナビゲータのオフライン・データベースからドラッグし、ダイアグラムにドロップできます。

テンプレートからのマテリアライズド・ビュー

テンプレートに基づいてマテリアライズド・ビューを作成するには、データベース・コンポーネント・パレットの「テンプレートからのマテリアライズド・ビュー」をクリックし、マテリアライズド・ビューの作成先のダイアグラムをクリックします。「テンプレート・オブジェクトの選択」ダイアログが表示され、マテリアライズド・ビューの基準とするテンプレートを選択できます。

プライベート・シノニムとパブリック・シノニム

データベース・コンポーネント・パレット上の(シノニム)をクリックした後、シノニムを作成するダイアグラム上をクリックすると、ダイアグラムにシノニムが作成されます。JDeveloperで定義したデータベース接続またはアプリケーション・ナビゲータのオフライン・データベースから、シノニムをドラッグしてダイアグラムにドロップする方法もあります。

パブリック・シノニムはPUBLICスキーマで作成されます。

リレーションの使用方法

データベース・コンポーネント・パレット上の(リレーションの使用方法)をクリックした後、ビューをクリックして、ビューの基本リレーションを定義します。

順序

ダイアグラムのデータベース・コンポーネント・パレット上の(「順序」)をクリックしてから、順序を作成するダイアグラムをクリックすると、ダイアグラムに順序が作成されます。JDeveloperで定義したデータベース接続またはアプリケーション・ナビゲータのオフライン・データベースから、順序をドラッグしてダイアグラムにドロップする方法もあります。

テンプレートからのシーケンス

ダイアグラムのデータベース・コンポーネント・パレット上の「テンプレートからのシーケンス」をクリックしてから、シーケンスを作成するダイアグラムをクリックすると、ダイアグラムにテンプレートに基づくシーケンスが作成されます。「テンプレート・オブジェクトの選択」ダイアログが表示され、マテリアライズド・ビューの基準とするテンプレートを選択できます。

テンプレートからのシノニム

ダイアグラムのデータベース・コンポーネント・パレット上の「テンプレートからのシノニム」をクリックしてから、シノニムを作成するダイアグラムをクリックすると、ダイアグラムにテンプレートに基づくシノニムが作成されます。「テンプレート・オブジェクトの選択」ダイアログが表示され、マテリアライズド・ビューの基準とするテンプレートを選択できます。

データベース・コンポーネント・パレット上の(表)をクリックした後、表を作成するダイアグラム上をクリックすると、ダイアグラムに表が作成されます。JDeveloperで定義したデータベース接続またはアプリケーション・ナビゲータのオフライン・データベースから、表をドラッグしてダイアグラムにドロップする方法もあります。

モデル化された表で、列が主キー、外部キー、または一意キーであることを示す表列アイコンの表示を選択できます。

モデル化された表の最初の列は、列が主キー、一意キー、または外部キーのいずれかを示します。

  • 列は主キー

  • 列は外部キー

  • 列は一意キー

  • 列にチェック制約あり

2番目の列は、表列が必須であるかどうかを示します。


注意:

表列が主キーの場合は、一意キーまたは外部キーでもある場合でも、主キーのアイコンのみが表示されます。

テンプレートからの表

データベース・コンポーネント・パレット上の「テンプレートからの表」をクリックした後、表を作成するダイアグラム上をクリックすると、ダイアグラムに表が作成されます。「テンプレート・オブジェクトの選択」ダイアログが表示され、マテリアライズド・ビューの基準とするテンプレートを選択できます。

ビュー

データベース・コンポーネント・パレット上の(ビュー)をクリックした後、ビューを作成するダイアグラム上をクリックすると、ダイアグラムにビューが作成されます。JDeveloperで定義したデータベース接続またはアプリケーション・ナビゲータのオフライン・データベースから、ビューをドラッグしてダイアグラムにドロップする方法もあります。

ビューを定義するには、表とビュー、表列または他のビューの要素を新規に定義するビューに追加します。ビューを追加するには、コンポーネント・パレットで作成する方法、ダイアグラム上の他のビューと表をビューにドラッグする方法、アプリケーション・ナビゲータからオフライン・データベース・オブジェクトをドラッグする方法、データベース・ナビゲータで接続からデータベース・オブジェクトをドラッグする方法があります。

テンプレートからのビュー

データベース・コンポーネント・パレット上の「テンプレートからのビュー」をクリックした後、ビューを作成するダイアグラム上をクリックすると、ダイアグラムにビューが作成されます。「テンプレート・オブジェクトの選択」ダイアログが表示され、マテリアライズド・ビューの基準とするテンプレートを選択できます。

23.5.1.3 データベースまたはスキーマの変更方法

  1. データベース・ダイアグラムで、右クリックして「データベース・オブジェクトの作成」→「データベース」または「スキーマ」を選択します。

  2. オフライン・データベース・オブジェクトの「アプリケーション・プロジェクト」、またはデータベース・オブジェクトの「データベース接続」を選択して、「場所の指定」ダイアログ、または「オフライン・スキーマの選択」ダイアログを終了します。


注意:

後続のデータベース・オブジェクトはすべて、選択したデータベースまたはスキーマで作成されます。既存のオブジェクトは変更されません。