私は Grails で遊んでいますが、ドメイン クラスに関して自分が何をしているのかを完全には理解していないため、ORM の作業が退屈だと感じています。誰かが私を軌道に戻してくれることを願っています
次のことを考慮してください
テスト ジョブ ジョブ で使用される 1対多のハードウェア多対 1 の 物理ハードウェア
...これは、大学の DB の例で見られる従来の Order、OrderLine、Product シナリオに類似しています。
次のドメインクラスを作成しました
class Job
{
String jobName
String jobDescription
}
class HardwareOnJob
{
static hasMany = [ jobs:Job, physicalHardware:PhysicalHardware ]
static belongsTo = Job
String role
}
class PhysicalHardware
{
String assetName
String model
String os
}
私が尋ねなければならない質問は、Grails が、私が定義したリンク エンティティ/ドメイン クラスを使用するのではなく、私のデータベースに 2 つの余分なテーブルを作成する理由です。たとえば、Grails はデータベースに hardware_on_job_job と hardware_on_job_physical_hardware を作成します。
スキャフォールディングされたコントローラーを使用して、いくつかのハードウェアを入力し、ジョブを入力してから、2 つを一緒にリンクすることができます。問題は、指定したドメイン オブジェクト (HardwareOnJob) を使用するのではなく、なぜこれら 2 つの追加のテーブルを作成するのかということです。
これを見て新しいことを試してみると、どんな助け/ガイダンスも非常に高く評価されます。ところで、私はgrailsバージョン1.2.1を使用しています