ドキュメント

サンプルポートレットを作成する

この内容は Aipo5.0.2.0 以前の開発マニュアルです。

Cayenneによるマッピング作成

CayenneとはデータベースとAipoとをつなぐ、いわば橋渡しのようなプログラムです。
AipoはCayenneを通じてデータベースに接続して、必要なデータを取得したり、追加したりしています。

Cayenneを利用するためには...

  1. 実際にデータベースにあるテーブル構造を、Cayenneにも設定しておくこと
  2. テーブル構造ごとのJavaのクラスファイルを作成すること

上記の2点必要があります。

この設定とクラスファイルの作成の両方を行うためのツールがCayenne Modelerです。

Cayenne Modelerでテーブル構造に合った「Cayenneの設定ファイル(xml)」および「オブジェクトモデルのJavaクラス」を、以下の手順で作成します。

1. Org001DomainNode.driver.xmlのバックアップ

Org001DomainNode.driver.xmlはデータベースへの接続を定義している設定ファイルです。実際にデータベースに接続できるファイルOrg001DomainNode.driver.xmlをバックアップします。

(Tomcatホーム)\webapps\aipo\WEB-INF\conf\postgres\Org001DomainNode.driver.xml

2. CayenneModelerの起動

CayenneModelerは下記ディレクトリに入っています。

(Cayenneホーム)\bin\CayenneModeler.exe

3. プロジェクトファイルを開く

[File]-[Open Project]で、プロジェクトファイルを開きます。このファイルは、下記ディレクトリにあります。

(プロジェクトルート)\oms\cayenne\webapp\WEB-INF\cayenne.xml

4. SharedDomainMapを開く

左の枠から、SharedDomainMapを選択して開き、緑丸印のobjEntityと灰色表印のDbEntityを表示させる。

5. DbEntityを追加する

ツールバーからcreate DbEntity(表のようなアイコン)をクリックしてDbEntityを追加します。

これがデータベースのテーブル構造に相当します。

6. DbEntityにテーブルの情報を入力する

Entityタブ

項目 設定内容 設定の意味
DbEntity Name eip_t_test テーブル名
Schema public スキーマ
PK Generation Strategy Custom Sequence プライマリキーを生成する仕組みを定義します。ここではPostgreSQLで生成する設定とします。
Sequence Name eip_t_test_test_id_seq PostgreSQLがプライマリキーを生成する際に用いるシーケンスを指定します。
Cached PK Size 1 1に設定すれば、毎回プライマリキーをデータベースに問い合わせてチェックする(推奨)

Attributesタブ

先ほどSQLで書いたテーブルの定義を、ここに書き写します。
Attributesタブの中のCreate Attributeボタンを押すと、要素が追加されます。
Mandoatoryとは、"NOT NULL"ということです。既に定義されているDbEntityを参考にしながら作業します。

7. ObjectEntityを作成する

設定が完了したDbEntityの、Attributesタブの中にあるCreateObjEntityボタンをクリックします。
すると、左のリストに、緑のCのアイコンでEipTTestというのが追加されます。これが、Javaクラスに対する設定となります。

8. Cayenne.xmlの保存

以上の設定が完了したら、cayenne.xmlを保存します。ツールバーからSaveをクリックしてください。
警告が出ますが、無視してかまいません。

9. クラスの作成

[Tools]-[Generate Clases]を選択し、Code Generation画面を開きます。

Output Directryが、使用しているEclipseプロジェクトのディレクトリで、

(プロジェクトルート)\oms\cayenne\src\java
とします。また、Entitiesタブで、EipTTestだけが選択されていることを確認します。そのほかの設定は変更する必要はありません。設定ができたら、Generateをクリックします。

Class generation fsinishedのメッセージが出たら成功です。
CayenneModelerは終了してもかまいません。

10. Cayenne設定ファイルの設定

CayenneModelerで設定ファイルを変更し保存すると、設定ファイルの配置が、Aipoで意図している位置とは変わってしまいます。そのため、設定ファイルの位置を、以下のように正しい配置になるように修正する必要があります。

また、Org001DomainNode.driver.xmlはバックアップしたものを差し戻す形で上書きしてください。

設定直後の誤った配置
 (プロジェクトルート)\oms\cayenne\webapp\WEB-INF
                                            │ AccountSharedDomainMap.map.xml
                                            │ cayenne.xml
                                            │ Org001DomainNode.driver.xml
                                            │ ecuritySharedDomainMap.map.xml
                                            │ SharedDomainMap.map.xml
                                            │
                                            └─conf
                                                └─postgres
正しい配置
 (プロジェクトルート)\oms\cayenne\webapp\WEB-INF
                                     │ cayenne.xml
                                     │
                                     └─conf
                                         └─postgres
                                                 AccountSharedDomainMap.map.xml
                                                 Org001DomainNode.driver.xml
                                                 SecuritySharedDomainMap.map.xml
                                                 SharedDomainMap.map.xml

11. プライマリキーを操作するメソッドの作成

EipTTest.javaにプライマリキーを操作するメソッドgetTestID()とsetTestID()を定義します。

「ポートレットの雛形作成」へ進む≫