6
1対多リレーションシップの一部である2つのドメインがあります。私は親のFKのために子供をどのように問い合わせることができるのだろうと思っていたのですか?ベローは、親/子のための擬似コードであるGrails、外部キーによるレコードの検索方法
親:
class AlumProfile {
String firstName
String lastName
static hasMany = [alumLanguage : AlumLanguage]
static mapping = {
cache true
id generator: 'assigned'
columns {
firstName type:'text'
lastName type:'text'
}
//
}
static constraints = {
firstName (nullable:true)
lastName (nullable:true)
}
}
子供:
class AlumLanguage {
String name
String level
static belongsTo = [alumProfile:AlumProfile]
static mapping = {
cache true
columns {
name type:'text'
level type:'text'
}
}
static constraints = {
name(nullable:true)
level(nullable:true)
}
}
私は明示的にFKを作成しませんが、Grailsのは、MySQL DBを作成するの面倒を見ますそのままで。しかし、私はこのようなFKで子供を照会したい場合:
if(AlumLanguage.findByNameAndAlumProfileId(language.'language'.toString(), 'jIi-hRi4cI')==null){
//do something
}
私はエラーを取得していない:名前が見つかりませプロパティを[alumProfileId]クラスの[クラスmgr.AlumLanguage]
上の任意の提案これを達成する方法は?
おかげ ジェイソン
これはリストを返します。私はAlumLanguagesオブジェクトを返さなければならないので、そのインスタンスを編集/削除することができます – jason
更新されました。しかし、そうするつもりなら、AlumProfile.alumLanguageを一意のメンバーを強制するための 'Set'として宣言したいと思うかもしれません。 –
ありがとうございました!好奇心の中で、 "AlumProfile.alumLanguageをSetとして宣言する"ことは何を意味しますか?再度、感謝します! – jason