2010-11-28 9 views
1

도메인 클래스가 있습니다 :grails. 도메인 클래스. 1 : m

package test 

class Credit { 

String name; 


static hasMany = [debts : Debt] 

    static constraints = { 
    } 
} 

package test 

class Debt { 


Integer amount; 
Date date; 


static belongsTo =[credits: Credit] 

    static constraints = { 
    } 
} 

필요 : max: 10를 선택하십시오. order: "desc"; Сredit.get(id)

와 관련된 sort: "date" 행의 부채 어떻게 할 수 있습니까?

Debt.findAllByCredits(Credit.get(params.id),[max:10, sort:"date",order:"desc"]) 

왜이 코드가 작동합니까?

def ok = Debt.findAllByCredits(Credit.get(params.id),[max:10, sort:"date",order:"desc"]) 


println "true:" + ok 

이 코드는 올바르게 작동하지 않습니다.

def dd = new Debt(credits: Credit.get(params.id)) 

def wrong =Debt.findAll(dd) 

println "no: "+ wrong 

항상 테이블의 모든 레코드를 반환합니다, 이유는 무엇입니까?

+0

다른 질문이있는 경우 이미 답변 한 질문에 추가하는 대신 새로운 질문을 만들어야합니다. –

+0

오케이, 고마워. 나는 지금 그것을한다. – user471011

답변

1

당신은 당신이 그것을 조정할해야 할 수도 있습니다

def hql = "select d from Debt d where credits = ? order by d.date desc" 
Debt.findAll(hql, [credit], [max:10]) 

뭔가를 할 수 있지만, 비슷한 작업을해야합니다. 또한, 나는 당신이 부채의 부모 인 신용 사례를 가지고 있다고 가정하고 있습니다.

또한 수업 다시

Debt.findAllByCredit(credit, [max:10,sort:"date",order:"desc"] 

의 속성을 기반으로 Grails는 런타임에 동적으로 생성하는 방법을 사용할 수 있습니다, 당신은 신용 객체에 대한 참조가 필요합니다. 왼쪽에서 탐색 도메인 클래스 findall은 이하와 findAllBy 섹션 구체적

http://grails.org/doc/latest/

의 오피스 밖으로

체크.

+0

이제 doc을 읽었습니다. findAllByCredit -이 메소드는 존재하지 않습니다. findAllByAmount와 findAllByDate 만 사용할 수 있습니다. ( – user471011

+0

@ user471011 당신은 신용이 ​​아닌 속성 크레딧을 가지고 있기 때문에 – hvgotcodes

+0

당신은 맞습니다! Debt.findAllByCredits (Credit.get (params.id), [max : 10, sort : "date", order : "desc"]) - 작품 !!! – user471011

관련 문제