2009-11-16 46 views
2
class Address { 
    static hasMany = [addressGroups: AddressGroup] 
    ... 
} 

class AddressGroup { 
    static belongsTo = Address 
    static hasMany = [addresses: Address] 

    String notation; 
    ... 
} 

一个多一对多的关系我尝试获取所有的地址对于一个给定AddressGroup。错误而查询Grails中

我的代码:

def params = [max: 10] 
def addressGroup = AddressGroup.findByNotation("asdf") 
def addresses = Address.findAllByAddressGroups(addressGroup, params) 

错误消息:否参数2

记录的SQL语句中指定的值:

select ... from ADDRESSES this_ where this_.id=10 order by this_.id asc limit ** NOT SPECIFIED ** 

...这是完全地错误的。

任何想法?

我可以通过使用addressGroup.addresses(并且工作!)来获取地址,但我想要在带有分页的表中显示它,所以我需要max/offset params。

回答

1

呃......我尝试过使用GORM扩展,但看了一下后,我发现它并不是我所需要的。

我endet了使用标准的API:

def c = Address.createCriteria() 
def results = c.list { 
    if(params.addressGroup) { 
     addressGroups { 
     eq('id', params.addressGroup) 
     } 
    } 

    maxResults(params.max) 
    order(params.sort, params.order)  
} 
1

我不认为动态发现者采取你需要的分页参数。

检出GORM Labs Plugin,它引入了对GORM的一些扩展。 “分页的HasMany属性”部分向您展示了如何去做你正在寻找的东西。

+0

样子去...感谢的方式! – arturh 2009-11-18 11:18:34