サポート > データベース活用ガイド(R6) > [技術資料] 既存のテーブルスキーマを利用する場合の注意点

既存のテーブル定義をそのまま活用し、Wagby での開発を行うこともできます。ここではその考え方および注意点を説明します。

定義方法

データベースの既存テーブルを Wagby から利用する手順は下記のとおりです。

  1. 外部データベースの既存テーブルのテーブル定義を Wagby 定義ファイルへ記述します。
    次のように対応させてください。
    • テーブル名 → モデル名
    • カラム名 → モデル項目名
    • テーブルの型に合わせて適切な「項目の型」を選択し、かつ必要であればリレーショナルデータベースの詳細でテーブル定義の型を指定します。
    モデル名、モデル項目名については大文字、小文字も区別されますのでご注意下さい。
  2. ビルドを行ないます。
  3. 既存のテーブル以外の新規テーブルの作成を行ないます。 外部データベースをご利用の場合にはテーブル作成が自動では行なわれません。 ドキュメント「インポートとエクスポート機能活用ガイド」のInitLoaderコマンドの詳細を参考に、必要なテーブルを作成します。
    init_db.bat, drop_db.bat を実行しますと、既存のテーブルが削除されてしまいますのでご注意下さい。
  4. 順序テーブル(シーケンス)の値を更新します。 Wagby のモデル定義で主キーを自動採番する設定を行った場合は、対応する順序テーブル(シーケンス)を作成した上でその順序テーブル(シーケンス)の値を「既に登録されているデータの主キーの最大値+1」に更新してください。
    Wagby では接続するデータベースによって順序テーブル(シーケンス)の利用方法が変わります。
    PostgreSQL, Oracle 9i/10g, DB2
    データベースのシーケンス機能を利用します。 シーケンスの名前は「モデル名_主キーの項目名_seq」となります。
    MySQL, SQLServer 2000/2005, SQL Anywhere 9
    データベースのシーケンス機能を使わず順序テーブルを作成します。 順序テーブルの名前は「seq」となります。 順序テーブル内でのシーケンスの名前は「モデル名_主キーの項目名_seq」となります。

注意点

既存テーブルをご利用になる場合、Wagby の次の制約にご注意ください。

  • 既存テーブルに NULL 値が存在しているにもかかわらず Wagby 定義ファイルで項目に「必須」条件を付与した場合、検索結果が表示されないことがあります。
  • 主キーを複合キーとして設計した場合、ストアモデル参照が使えないなど、多くの制約があります。そのため、複合キーの利用は非推奨です。
  • 複雑なリレーションのあるテーブルについては、パフォーマンスチューニングのために自動生成された Java ソースコードをカスタマイズする必要があるかも知れません。予めご了承ください。