Есть следующий condition, который должен работать примерно так: если некое поле у сущности null, то ищем по таким полям, а если not null, то по другим, вот сам condition:
<or>
<c:jpql>
<c:where>(e.friend is null and (e.a like :name or e.b like :name))</c:where>
</c:jpql>
<c:jpql>
<c:where>(e.friend is not null and (e.friend.a like :name or e.friend.b like :name))</c:where>
</c:jpql>
</or>
Но в таком случае результат выдается только когда e.friend not null, в чем ошибка?