サポート > リポジトリ > 検索制御 > 参照連動項目を検索条件に指定する
ja | en

「参照連動」項目を検索条件に指定することができます。

「会社」モデルを親とし、それに紐づく「顧客」モデルを子とした例

図1,図2はそれぞれ "ジャスミンソフト" と "ジャスミン商事" に顧客が紐付いた(外部キー関係の)定義を行っています。

図1 会社 "ジャスミンソフト" に紐づく2件の顧客
図2 会社 "ジャスミン商事" に紐づく2件の顧客

(子である)「顧客」モデルの検索画面を開きます。会社名は参照連動項目であり、顧客モデルのテーブルには(データベース定義として)用意されていません。(親である)「会社」モデルと結合して、検索を行うことができます。

図3 参照連動項目を使った部分一致検索を行った例 (1)
図4 参照連動項目を使った部分一致検索を行った例 (2)

親子モデル関係の定義

この例では「会社」モデルを親と、「顧客」モデルを子として定義しています。

図5 会社モデルと顧客モデル
図6 顧客モデルを中心とした関連図

会社モデル

「会社名」項目をデータベースに保存するようにします。(項目を定義すると、標準ではデータベースに保存されます。)

図7 会社モデルの定義

顧客モデル

「会社ID」は外部キーとなります。会社IDの参照連動項目として「会社名」を用意します。

図8 顧客モデル

会社ID

会社モデルの主キーを、外部キーとして指定します。

図9 外部キーの設定

会社名

(顧客モデルの)会社IDをトリガーとして、(会社モデルの)会社名を参照連動します。

図10 参照連動の設定

この項目はデータベースに保存しないとします。これによって会社モデルに対応したテーブル定義には、この会社名項目は含まれなくなります。

図11 データベースに保存しない
データベースに保存するという設定を行うこともできます。この場合、親の会社モデルの会社名が変更された場合でも、子である顧客モデルのデータは古い会社名のまま維持されます。

検索条件 - 条件式

文字列型

条件式は標準で空白となっています。参照連動項目を検索条件として用いる場合、完全一致検索となります。

図12 条件式が未設定

「文字列の部分一致」を選択すると、部分一致検索となります。(上の例で示した動作は、この設定を行った場合となります。)

図13 文字列の部分一致検索

数値、日付型

範囲検索を有効にすることで、範囲による検索条件を設定できるようになります。

図14 範囲検索を指定する

参照先項目はデータベース保存されていること

参照先の項目は、"データベースに保存する" ようにしてください。(上の例における「会社モデル」の「会社名」はデータベースに保存する設定となっている必要があります。)

指定できない場合

下記の指定は行えません。

内蔵データベース (HSQLDB) 利用時の制約

内蔵データベース(HSQLDB)利用時は、参照先項目のモデル内の項目名(英語)が参照元項目のモデル内の項目名(英語)と重複する場合は動作しません。

例:各モデルの主キー名を同じ(例:id)とした場合、内蔵データベースではエラーになります。本機能を利用する場合はモデル毎に主キー名を変更するか、外部データベースをご利用ください。