Hibernate HQL NULL比较模式

时间:2010-07-16 06:28:24

标签: java sql mysql database hibernate

想象一个简单的网页,您可以像这样搜索预订:

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

  • 如果预订号码字段已填充,我想返回所有行。
  • 如果填写预订编号字段 ,我只想返回该行。

我一直在Hibernate中使用一个模式(使用底层的MySQL数据库)来实现这一点,如下所示:

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

我最近看到了一些weird performance issues,这让我想知道这里是否有更好的模式可供使用。我确定非Hibernate查询必须有类似的问题。

其他人在这种情况下做了什么?

谢谢,

d

1 个答案:

答案 0 :(得分:1)

使用Hibernate条件查询,仅在bookingNum不为空时才添加谓词。