2010-07-16 2 views
0

는이 같은 예약을 검색 할 수 있도록 간단한 웹 페이지를 상상해최대 절전 모드 HQL NULL 비교 패턴

picture of web page http://locuslive.com/webdrive/booking.png

  • 를 예약 번호 필드가 내가 모든 행을 반환하려면 채워지지 경우.
  • 예약 번호 필드 이 채워진 경우 인 경우 해당 행만 반환하려고합니다.

내가 좋아하는 뭔가 들어가이를 위해 (기본이되는 MySQL 데이터베이스와) 최대 절전 모드에서 패턴을 사용하고 있습니다 :

AND (:bookingNum IS NULL OR (:bookingNum IS NOT NULL AND :bookingNum = booking.bookingNumber)) 

내가 최근에 보게되었습니다 일부 weird performance issues 그 날 궁금 있어요 여기에 더 좋은 패턴이 있습니다. 나는 Hibernate가 아닌 쿼리가 비슷한 이슈를 가져야 만한다고 확신한다.

이 중재에서 다른 사람들은 무엇을합니까?

감사합니다,

D.

답변

1

사용 하이버 네이트 기준 쿼리 bookingNum가 null가 아닌 경우에만 술어를 추가.

+1

기준이 아닌 HQL을 사용하고 있습니다. StringBuilder 및 IF 문을 사용하여 비슷한 작업을 수행 할 수 있습니다. 그러나 나는 더 우아한 것을 기대하고 있었다. 너무 희망적입니까? – Damo