thanks for getting back to me.
First of all, by using a full QueryDSL query rather than just the predicate, I could make this particular case work now.
But for future reference, I would still be interested in the reason why the original predicate did not work for me.
select
contributi0_.id_contribution as id_contr1_11_,
contributi0_.fk_annotation as fk_annot8_11_,
contributi0_.created as created2_11_,
contributi0_.end_time as end_time3_11_,
contributi0_.start_time as start_ti4_11_,
contributi0_.version as version5_11_,
contributi0_.fk_data_sources as fk_data_9_11_,
contributi0_.fk_current_revision as fk_curr10_11_,
contributi0_.downvotes as downvote6_11_,
contributi0_.fk_first_revision as fk_firs11_11_,
contributi0_.fk_contribution_type as fk_cont12_11_,
contributi0_.upvotes as upvotes7_11_
from
contribution contributi0_
where
exists (
select
1
from
contribution_partof_discourse_part contributi1_ full
outer join
discourse_part discoursep2_
on contributi1_.fk_discourse_part=discoursep2_.id_discourse_part full
outer join
discourse_has_discourse_part discourset3_
on discoursep2_.id_discourse_part=discourset3_.fk_discourse_part
where
contributi0_.id_contribution=contributi1_.fk_contribution
and discourset3_.fk_discourse=?
)