サポート > データベース活用ガイド > [技術資料] 既存のテーブルスキーマを利用する場合の注意点
既存のテーブル定義をそのまま活用し、Wagby での開発を行うこともできます。ここではその考え方および注意点を説明します。
定義方法
データベースの既存テーブルを Wagby から利用する手順は下記のとおりです。
- 外部データベースの既存テーブルのテーブル定義を Wagby 定義ファイルへ記述します。
次のように対応させてください。
- テーブル名 → モデル名
- カラム名 → モデル項目名
- テーブルの型に合わせて適切な「項目の型」を選択し、かつ必要であればリレーショナルデータベースの詳細でテーブル定義の型を指定します。
モデル名、モデル項目名については大文字、小文字も区別されますのでご注意下さい。 - ビルドを行ないます。
- 既存のテーブル以外の新規テーブルの作成を行ないます。
外部データベースをご利用の場合にはテーブル作成が自動では行なわれません。
ドキュメント「インポートとエクスポート機能活用ガイド」のInitLoaderコマンドの詳細を参考に、必要なテーブルを作成します。
init_db.bat, drop_db.bat を実行しますと、既存のテーブルが削除されてしまいますのでご注意下さい。
- 順序テーブル(シーケンス)の値を更新します。
Wagby のモデル定義で主キーを自動採番する設定を行った場合は、対応する順序テーブル(シーケンス)を作成した上でその順序テーブル(シーケンス)の値を「既に登録されているデータの主キーの最大値+1」に更新してください。
Wagby では接続するデータベースによって順序テーブル(シーケンス)の利用方法が変わります。
- PostgreSQL, Oracle 9i/10g, DB2
- データベースのシーケンス機能を利用します。 シーケンスの名前は「モデル名_主キーの項目名_seq」となります。
- MySQL, SQLServer 2000/2005, Adaptive Server Anywhere
- データベースのシーケンス機能を使わず順序テーブルを作成します。 順序テーブルの名前は「seq」となります。 順序テーブル内でのシーケンスの名前は「モデル名_主キーの項目名_seq」となります。
注意点
既存テーブルをご利用になる場合、Wagby の次の制約にご注意ください。
- 既存テーブルに NULL 値が存在しているにもかかわらず Wagby 定義ファイルで項目に「必須」条件を付与した場合、検索結果が表示されないことがあります。
- 連結主キーを用いている場合、ストアモデル参照が使えないなど、多くの制約があります。基本的に連結主キーは利用を避けてください。
- 複雑なリレーションのあるテーブルについては、パフォーマンスチューニングのために自動生成された Java ソースコードをカスタマイズする必要があるかも知れません。予めご了承ください。
関連するページ
- Wagby 定義ファイルマニュアル - 活用ガイド - 連結主キーに代わる、一意制約を設定する
