데이터베이스의 도메인 클래스 인스턴스에서 지난 20 개의 업데이트 된 레코드를 얻고 싶지만 어떤 경우에는 특정 속성과 구분됩니다. 내 경우에는 color
입니다. 나는 3 가지 접근 방식을 시도했지만 아무도 예상대로 작동하지 않는 것 같습니다.Grails 기준을 사용하여 하나의 속성에 대한 별개의 결과 얻기
첫 번째 방법 :
def corridors = TerminKorridor.findAll([max:20, sort:'lastUpdated', order:"desc"]).color.unique();
작동하지만 반환하지 않습니다 20 개 항목
두 번째 방법 :
def corridors = corridorsCriteria.list{
distinct("color")
maxResults(20)
order("lastUpdated", "desc")
}
는
은 같은 색상으로 항목을 제거하지 않습니다 . 고유
세 번째 접근 방법을 작동하지 않습니다
def corridors = TerminKorridor.executeQuery("Select distinct a.color from TerminKorridor a order by a.lastUpdated desc",[max:20])
이 같은 색상으로 항목을 삭제하지 않습니다 distinct
이 작동하지 않습니다.
이이 옵션 대신 색상을로드하는 HQL을 사용하여이 더 잘 만들 수 있습니다! – Jacob
와우, 프로그램 흐름에 예외를 사용하는 것은 큰 일이 아닙니다. 루프에서 벗어나기 위해 'true'를 반환하는 것과 같은 몇 가지 대안을 보려면이 대답 (http://stackoverflow.com/a/3050218/1110820)을 확인하십시오. –
이것이 나쁜 생각 인 이유에 대한 자세한 내용은 http://stackoverflow.com/questions/729379/why-not-use-exceptions-as-regular-flow-of-control을 참조하십시오. –