Создание исключения запроса в JPA при создании пользовательского метода запроса - PullRequest
0 голосов
/ 28 апреля 2020

JPA-репозиторий Ошибка для пользовательского метода запроса:

org.h2.jdbc.JdbcSQLException: Table "NBMRBANKDTLSENTITY" not found; SQL statement:
select NBMRBankDtlsEntity from NBMRBankDtlsEntity  where NBMRBankDtlsEntity.ipphId = ? [42102-191]
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)

Класс:

@Repository
public interface NBMRBankDtlsRepository extends JpaRepository<NBMRBankDtlsEntity, Long> {

    @Query(value ="select n from NBMRBankDtlsEntity n  where n.ipphId = :ipphId",nativeQuery = true)
    Optional<NBMRBankDtlsEntity> findByIPPHId(@Param("ipphId") Long ipphId);

}

Ответы [ 2 ]

0 голосов
/ 30 апреля 2020

Я уже создаю таблицу и вставляю запись, После этого только я вызываю этот метод пользовательского запроса.

Я обнаружил проблему, так как использую nativeQuery = true, поэтому ожидание нормальное sql запрос к базе данных напрямую, а не java запрос, который создает проблему. Теперь, после изменения ниже, он работает нормально,

@ Query (value = "SELECT * from NB_MR_BANK_DTLS WHERE IPPH_ID =: ipphId", nativeQuery = true)

Для запроса java мы можем напрямую использовать поскольку он внутренне преобразуется в SQL при запросе к БД,

@ Query (value = "выберите p из NBMRBankDtlsEntity p WHERE p.ipphId =: ipphId")

0 голосов
/ 29 апреля 2020

Сообщение об ошибке сообщает вам: Table "NBMRBANKDTLSENTITY" not found. Поэтому, вероятно, не существует. Чтобы это исправить, вам нужно будет создать таблицу вручную, с помощью сценария или с помощью функции создание схемы гибернации .

...