1

私の grails プロジェクトでは、フィールド都市を持つ患者という名前のオブジェクトのインスタンスを作成します。

class Patient {

 String name;
 String surname;
 String cf;
 String address;
 String cap;
 String city;
 String province;
 String country;
 String phone_1;
 String phone_2;
 String email;
 String vat;

}

患者を作成するとき、都市をその ID で保存しますが、show() および list() メソッドで、関連する都市の名前が表示されるようにします。

Cities ドメイン クラスは、次のようにデータベース内のテーブルにリンクされています。

class Cities {

String cityName;
String capOfCity;
String provinceOfCity;

static constraints = {
}

static mapping = {
    table 's_cap'
    id column: 'idcap'
    cityName column: 'comune'
    capOfCity column: 'cap'
    provinceOfCity column: 'prov'
    version false
}  
}

ID で名前を取得するには、db にクエリを実行する必要があると思いますが、gsp でどのように実行できますか?

4

1 に答える 1

3

現在のアプローチでできること

def show(){
   // look up your patient object
   def patient = Patient.get(123)
   def patientCityObject = Cities.findByCityName(patient.city)
   [patientCityObject: patientCityObject ]
}

GSP:

<p>${patientCityObject.cityName}</p>

でも、

ドメイン間の関連付けを定義すると、アクセス時に Grails が都市をロードします。患者に関連付けられた都市オブジェクトにアクセスするには、次のように定義できます。

class Patient {
 ...
 Cities city;
 ...

}

次に、患者オブジェクトを取得したら、そのプロパティの都市に簡単にアクセスできます。

def patient = Patient.get(123)
patient.city.cityName

これにより、患者に関連付けられた都市オブジェクトが得られます。次に、それを GSP に渡して使用できます。

GORM とオブジェクト リレーションの詳細については、オブジェクト リレーショナル マッピングを参照してください。

于 2013-08-29T12:00:29.860 に答える