我想执行一个查询,该查询将给出带有WHERE条件的PN列表,但它也会根据WHERE条件过滤”PnDett”列表。
我如何实现这一点?,这是PN映射:,这是PnDett映射:,在HQL中,我编写了这样的查询:”SELECT*FROM PN FirstNote where FirstNote.dataContabile=(我自己输入的参数,在本例中是2020年4月20日)和FirstNote.pnDetts.seCancellato=(我输入自己的参数,在本例中为0)和FirstNote.pnDetts.importoDare;>0或FirstNote.pnDetts.importoAvere<;>0″,坦率地说,结果是一团糟。我的PN表中只有两行将参数dataContabile设置为2020年4月20日,但我得到了18个结果,结果是一个Object[],不知何故包含了这两个实体。在pn对象中,我确实过滤了pnDetts列表,以匹配我正在搜索它们的日期,但其他过滤器甚至都不起作用。我怎么才能把这个烂摊子修好呢?理想情况下,我的结果应该是过滤了pnDetts列表的两个PN对象的列表,但我不知道如何实现这一点。,编辑:
好的,我进行了一个SQL查询,发现与该日期相关的pnDett行的importoDare<;>0或importoAvere<;>0正好是18,这就是为什么我得到18组对象[]。但我怎么可能只有两个PN对象,而里面的列表却被过滤了呢?,为了使过滤器工作,我们可以使用
fetch
,这将确保初始查询获取所有需要的数据。,这篇关于在Hibernate HQL中,如何过滤作为主表父级的联接表的结果?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,