2013-04-09 1 views
0

그래서 검색 기능을 만들려고합니다. 안녕 최대 절전 모드 작성 기준을 사용하여 그것을 얻을려고. 2 개의 값으로 검색 중. 값 중 하나가 null이면 예외를 throw하고, 그렇지 않으면 테이블에 해당 검색에 대한 모든 정보를 계속 표시합니다.최대 절전 모드 만들기 조건

def search(params) { 

def r = User.createCriteria() 

if (params.searchUsername != 'Enter a Username' && params.searchMPI != 'Enter a User Number') { 
    def number = params.searchNumber 
    def username = params.searchUsername 

    r = User.createCriteria() 


    def userList = r.list(max: params.max, offset: params.usersOffset) { 
     and { 
      ilike('username', '%' + username + '%') 
      ilike('number', '%' + number + '%') 
     } 
     order(params.usersSort, params.usersOrder) 
    } 
} 

이것은 지금까지 내 검색 기능입니다. 사용자 이름과 사용자 번호를 검색합니다. 거의 사용자 번호와 연관된 사용자 이름이 있어야합니다. 만약 하나 또는 다른 사람이 null이 오면 나에게 하나가 null이라는 것을 알리는 소리를 낼 필요가있다. Iv는 여기에 createCriteria 정보를 보았습니다 http://grails.org/doc/2.2.x/ref/Domain%20Classes/createCriteria.html. if NULL 메소드입니다. 그것은 단지 null 값을 검색하는 것 같습니다. 내 검색에이를 구현할 수있는 방법이 있습니까?

if ((ilike('username', '%'+ username) || ilike('number', '%' + number)) == (isNull('username') || isNull('number')){ 
     system.out.println("ONE OF THE VALUES IS NULL!") 

이렇게 생각하고 싶습니다.^그러나 그것은하지 않습니다

나는 이것에 아주 새롭다. 그래서 건설적인 비판은 높이 평가됩니다. D

답변

0

왜 이러한 문자열을 매개 변수로 제출 하시겠습니까? 그럴 의도가 있니? 그리고 이것이 확실한 조건인지 확신합니까?

if NULL 메소드입니다. 그것은 단지 null 값을 검색하는 것 같습니다. 내 검색에이를 구현할 수있는 방법이 있습니까?

다른 말로 표현할 수 있습니까? (나는 당신이 뭘 하려는지 이해가 안 되니?)

+0

미안하다, 나는 의미했다. Hibernate는 isNull() 메소드를 가지고있다. 이 방법은 사용할 수있는 것처럼 보이지만 null 값만 찾습니다. (하지만 완전히 이해한다면 확실하지 않습니다.) 채워진 테이블 인 경우이 검색입니다. 꽤 많이 있습니다. 내가해야 할 일은 데이터베이스에서 채워진이 테이블을 확인하는 것입니다. 테이블은 사용자 이름과 사용자 번호로 검색 할 수 있어야합니다. 검색하는 사람이 사용자 이름과 번호로 입력해야하는 검색 상자가 두 개 있습니다. 어떤 이유로 이러한 매개 변수 중 하나가 데이터베이스에 null로 표시되면 소리를 내야합니다. – CoffeePeddlerIntern

+0

나는 당신이 조건을 필요로한다고 생각한다. – DAJ

관련 문제