サンプルポートレットを作成する
最新の開発マニュアルは Google Code 内Aipoプロジェクトをご覧下さい。
Cayenneによるマッピング作成
CayenneとはデータベースとAipoとをつなぐ、いわば橋渡しのようなプログラムです。
AipoはCayenneを通じてデータベースに接続して、必要なデータを取得したり、追加したりしています。
Cayenneを利用するためには...
- 実際にデータベースにあるテーブル構造を、Cayenneにも設定しておくこと
- テーブル構造ごとの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()を定義します。
CayenneとはデータベースとAipoとをつなぐ、いわば橋渡しのようなプログラムです。
AipoはCayenneを通じてデータベースに接続して、必要なデータを取得したり、追加したりしています。
Cayenneを利用するためには...
- 実際にデータベースにあるテーブル構造を、Cayenneにも設定しておくこと
- テーブル構造ごとの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()を定義します。