У меня есть запрос, который возвращает результат при выполнении в базе данных. Но он ничего не возвращает, когда я выполняю его из своего приложения, он просто продолжает выполняться.
Ниже приведен фрагмент кода, который у меня есть:
@Query(value = "select distinct c.ROWID_OBJECT, rc.CMPNY_NMBR from ecm_ors.dbo.c_b_pty rc " +
"left join ecm_ors.dbo.c_b_pty_rel rel on rc.ROWID_OBJECT = rel.PTY_ID_1 " +
"left join ecm_ors.dbo.c_b_pty c on rel.PTY_ID_2 =?1 " +
"where rc.PTY_ROLE = 'L' and c.PTY_ROLE = 'L' and rel.REL_TP = 'is parent of' " +
"and rc.HUB_STATE_IND = 1 and rel.HUB_STATE_IND = 1 and c.HUB_STATE_IND = 1 " +
"AND ?2 IS NULL OR c.CMPNY_NMBR =?2 AND rel.PTY_ID_2 = c.ROWID_OBJECT", nativeQuery = true)
List<Object[]> getCompanyList(String ptyId, String cmpNumber);
Тот же запрос показывает результат, когда прогнать его через базу данных
select distinct c.ROWID_OBJECT, rc.CMPNY_NMBR from ecm_ors.dbo.c_b_pty rc
left join ecm_ors.dbo.c_b_pty_rel rel on rc.ROWID_OBJECT = rel.PTY_ID_1
left join ecm_ors.dbo.c_b_pty c on rel.PTY_ID_2 = 493
where rc.PTY_ROLE = 'L' and c.PTY_ROLE = 'L' and rel.REL_TP = 'is parent of'
and rc.HUB_STATE_IND = 1 and rel.HUB_STATE_IND = 1 and c.HUB_STATE_IND = 1
and 02637 is null or c.CMPNY_NMBR =02637
and rel.PTY_ID_2 = c.ROWID_OBJECT
Проблема, которую я предвижу в этом состоянии
?2 IS NULL OR c.CMPNY_NMBR =?2
Это ошибка типа:
Выражение небулева типа, указанного в контексте, где ожидается условие
Я не вижу никаких ошибок, вызов REST продолжает вращаться.
Не знаю, как это исправить, пожалуйста, посоветуйте.