2012-05-17 160 views
0

我想列出属于SAMPLE_TYPE的所有SAMPLE_PARAMETERS。我有两个类:Sample_type和Sample_parameter。还有一个自动创建的连接表,其中列出了名为Sample_Type_Sample_Parameters的所有类型/参数的ID。我试图列出属于某个类型的所有参数,但无法弄清楚如何访问连接表。Grails查询 - 无法访问连接表

我可以使用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 
    } 
} 

回答

0

你就应该能够做到:

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

但它取决于你如何定义你的域类,你从你的问题中省略了

+0

我已经更新了我的原始问题到incl ude the classes – Universitas

+0

因此'SampleType.findBySampleName(“Blood”).sampleParameters'是否工作? –

+0

它的工作原理。现在我只需要分离列表中的这些参数。谢谢!我正试图与Criteria一起使用,并没有得到任何地方。 – Universitas