Я работаю над запросом JPQL, цель которого - отправить обратно список объектов на основе вставок или модификаций в одну из 5 таблиц.
Вот запрос
StringBuilder statement = new StringBuilder("select NEW package.CustomObject(co.id, item, dim, mat, pro) from Object1 co JOIN co.items item JOIN item.dim dim JOIN item.mat mat JOIN item.pro pro "
+ " where co.ins between '2018-12-26 01:00:00' and '2019-06-26 01:00:00' "
+ " or co.mod between '2018-12-26 01:00:00' and '2019-06-26 01:00:00' "
+ " or exists ( select item1.id "
+ " from Object2 item1 "
+ " where item1.orderNo = co.orderNo "
+ " and ( item1.ins between '2018-12-26 01:00:00' and '2019-06-26 01:00:00' "
+ " or item1.mod between '2018-12-26 01:00:00' and '2019-06-26 01:00:00' "
+ " or exists "
+ " ( select dim1.id "
+ " from Object3 dim1 "
+ " where dim1.item.id = item1.id "
+ " and ( dim1.ins between '2018-12-26 01:00:00' and '2019-06-26 01:00:00' "
+ " or dim1.mod between '2018-12-26 01:00:00' and '2019-06-26 01:00:00'"
+ " )"
+ " ) "
+ " or exists "
+ " ( select mat1.id "
+ " from Object4 mat1 "
+ " where mat1.item.id = item1.id "
+ " and (mat1.ins between '2018-12-26 01:00:00' and '2019-06-26 01:00:00' "
+ " or mat1.mod between '2018-12-26 01:00:00' and '2019-06-26 01:00:00'"
+ " )"
+ " ) "
+ " or exists "
+ " ( select prod1.id "
+ " from Object5 prod1 "
+ " where prod1.item.id = item1.id "
+ " and (prod1.ins between '2018-12-26 01:00:00' and '2019-06-26 01:00:00' "
+ " or prod1.mod between '2018-12-26 01:00:00' and '2019-06-26 01:00:00'"
+ " ) "
+ " ) "
+ " ) "
+ " ) "
+ " order by co.id, item.id DESC");
Обычно У меня должно быть тысячи результатов, но этот запрос дает один уникальный результат