【问题标题】:Hibernate HQL NULL comparison patternHibernate HQL NULL 比较模式
【发布时间】:2011-03-16 19:12:09
【问题描述】:

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

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.

【问题讨论】:

    标签: java sql mysql database hibernate


    【解决方案1】:

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

    【讨论】:

    • 我使用的是 HQL 而不是标准。我可以使用 StringBuilder 和 IF 语句来做类似的事情。但我希望有更优雅的东西。太有希望了?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-15
    • 2013-10-31
    • 1970-01-01
    • 1970-01-01
    • 2017-11-26
    • 2012-09-11
    • 1970-01-01
    相关资源
    最近更新 更多