Grails查询 - 无法访问连接表

时间:2012-05-17 21:04:10

标签: hibernate grails groovy

我想列出属于SAMPLE_TYPE的所有SAMPLE_PARAMETERS。我有两个类:Sample_type和Sample_parameter。还有一个自动生成的连接表,它列出了所有类型/参数的ID,称为Sample_Type_Sample_Parameters。我试图列出属于某种类型的所有参数,但无法弄清楚如何访问连接表。

我可以使用withCriteria吗?如果是这样,怎么会这样做呢?在伪代码中:例如,如果我的样本类型是血 - 我想要这个

def result = SampleParameters.withCriteria{
//all parameters in which the sampleType.id in join table matches the blood's id    
}

我的课程:

class SampleType {

    String sampleName

    static constraints = {
         sampleName(blank:false)
    }
    String toString() {
        "${sampleName}"
    }

    static hasMany =[sampleParameters:SampleParameter]//[tags:Tag]
    static mappedBy=[sampleParameters:"sampleTypes"]//[tags:"domainClass2s"]
}

class SampleParameter {

    String name
    String value

    static hasMany = [
    samples:Sample,         //domainClass1s: DomainClass1,
    sampleTypes:SampleType  //domainClass2s: DomainClass2
    ]

    static mappedBy = [samples:"sampleParameters",sampleTypes:"sampleParameters"]//[domainClass1s: "tags", domainClass2s: "tags"]
    static belongsTo =[Sample,SampleType] //[DomainClass1, DomainClass2]

    static constraints = {
      name()
      value(unique:true)
    }

    @Override public String toString() {
        return value
    }
}

1 个答案:

答案 0 :(得分:0)

你应该能够做到:

def props = SampleType.findBySampleName( "Blood" ).sampleProperties

但这取决于您如何定义您的域类,您已从问题中省略了