Hibernate HQL语句没有返回正确的结果

时间:2014-04-03 18:17:22

标签: java hibernate hql

我遇到了hibernate HQL查询无法根据下面的where语句返回一种结果的问题。我有'actions',它有一个名为'event'的属性,对于一些不需要事件的动作,它可以为null。这是语句遇到问题的地方,当我检查'event.sections'时,它不会返回带有null事件的动作。如果我删除那些检查语句entity.event.section = 'xxx' or ...,那么它就会开始工作。它应该返回的行匹配entity.owner = 'xxx'entity.assignee = 'xxx',这意味着我们有一个成功匹配,停止检查。对我来说奇怪的是,HQL似乎没有提到entity.event is not null所以不要检查这些部分。

希望这很清楚,可以提供一些帮助。非常感谢!

(
   (
      (entity.status = '1') 
      and 
      (entity.owner = 'xxx' or entity.assignee = 'xxx' or (
          entity.event is not null and (
              entity.event.section = 'xxx1' or 
              entity.event.section = 'xxx2' or 
              entity.event.section = 'xxx3' or 
              entity.event.section = 'xxx4')
          )
      )
   )
   and entity.security = '1'
)

0 个答案:

没有答案