AIPOのDBテーブルにカラム追加

AipoはCayenne を通じてデータベースに接続して、必要なデータを取得したり、追加したりしています。
Cayenne を利用するためには、

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

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

DBをカラムした場合は、変更後のCayenne Modelerでテーブル構造に合った「Cayenneの設定ファイル(xml)」および「オブジェクトモデルのJava クラス」を生成しなければなりません。

まずPostgreSQLでカラムを追加

AIPOのタイムカード情報は「EipTExtTimecard」というテーブルに記録されているので、ここにユーザーメモ用に「user_memo」というText型のカラムを追加します。

Windows開発環境にセットアップ済みのPostgreSQLのpsql.exeをコマンドプロンプトで
「psql.exe -U aipo_postgres -h localhost -d org001」
(gitからソースを取ってきた人は、-U postgresかな)
と入力し、パスワード+「enter」でDBに接続する。
100

カラム追加のクエリーを実行する。

ALTER TABLE eip_t_ext_timecard ADD user_memo text;

101
ちゃんと追加されているかを確認する。

\d eip_t_ext_timecard

102

CayenneModelerの起動

ドキュメント|無料グループウェア「アイポ」
に従って開発環境を構築していれば、下記で「Cayenne Modeler」が起動できる。
(cayenne_home)\bin\CayenneModeler.exe
01

JDBCを指定する

レフトメニューの「ClassPath」をクリックし、右側の[Add Jar/Zip]ボタンをクリックする。
300
AIPOビルド環境構築にて、セットアップしたJDBCドライバのJarファイルを指定する。

C:\home\aipo\apache-tomcat-6.0.37\common\lib\postgresql-8.1-415.jdbc3.jar

http://jdbc.postgresql.org/download/postgresql-8.1-415.jdbc3.jar
301
[Save]をクリック
302

PostgreSQLとつなげる

メニュー「Tools」->「Preferences」をクリック。
200
“Edit Preferences”ウィンドウが表示されるので、レフトメニューの「Local DataSources」をクリックする。
201
[New..]ボタンをクリック
202
Adapter:をPostgresのものを選択し、[Create]ボタンをクリック
203
DB URL:のdatabaseをorg001に変更。そしてUserNameとPasswordを入力して[Test..]ボタンをクリック
204
303
Successと表示されるはず。
304
[Save]をクリックする。

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

[File]-[Open Project]で、プロジェクトファイルを開きます。

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

02
03
プロジェクトファイルを開くと下記のような画面になる。
04
ちなみに、このcayenne.xmlは下記のようなファイル

<?xml version="1.0" encoding="utf-8"?>
<domains project-version="2.0">
<domain name="SharedDomain">
    <property name="cayenne.DataDomain.dataContextFactory" value="com.aimluck.eip.cayenne.access.IsolatedDataContextFactory"/>
    <property name="cayenne.DataRowStore.snapshot.size" value="50000"/>

    <map name="AccountSharedDomainMap" location="AccountSharedDomainMap.map.xml"/>
    <map name="SecuritySharedDomainMap" location="SecuritySharedDomainMap.map.xml"/>
    <map name="SharedDomainMap" location="SharedDomainMap.map.xml"/>
    <map name="SocialSharedDomainMap" location="SocialSharedDomainMap.map.xml"/>
</domain>
</domains>

PostgreSQLと同期

先ほど追加したカラムについて、AIPOのタイムカード情報「EipTExtTimecard」テーブルと同期してCayenee Modelerに反映させる。
ツリー表示の「SharedDomainMap」をクリックする。
308
Tools
–> Reengineer Databse Schema
とクリックする。
305
JDBC経由でDBに接続する。
306
Select Schema:をPublicに変更して、[Continue]をクリック
307
既にDbEntityが存在してますよ!と警告されるが、構わずに[Overwrite]をクリックする。
309
Progress..と表示され同期が行われる。
310

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>