У меня есть таблица A и таблица b, которые не имеют отношения. Но таблица A, таблица B сопоставлены с сущностью, и между сущностями нет никакой связи. Предположим, таблицы отображаются, как показано ниже.
@Entity
@Table(name = "tableA")
public class TableA
@Entity
@Table(name = "tableB")
public class TableB
Ида, ref_no, схема тип
idb, accountno, секема тип
Мне нужно получить «accountno» из tableB для данного «ref_no», который имеет такие же «sechema» и «type». Я могу получить "accountno", используя приведенный ниже собственный SQL-запрос в моем классе репозитория, который реализует CrudRepository.
@Query(value = "SELECT b.accountno FROM DB.tableA as a INNER JOIN DB.tableB as b ON b.sechema = a.sechema AND b.type = a.type WHERE a.ref_no= ?1", nativeQuery = true)
Integer findByRefNo(String refNo);
Может ли кто-нибудь помочь мне преодолеть эту проблему, потому что, используя собственный запрос, мне нужно изменить, если имя БД отличается.
Я пробовал с помощью ниже, но это дало мне ошибки.
@Query(value = select b.accountno from TableA a join TableB b where b.sechema = a.sechema and b.type = a.type and (:refNo is null or a.refNo = :refNo)")
Integer findByRefNo(@Param("refNo") String refNo);






Если что-то, что вы попробовали, привело к возникновению исключения, укажите это исключение (полный стек вызовов) в вопросе. Это часто помогает найти подходящий ответ, а также помогает другим найти вопрос, если у них есть аналогичная проблема.