Hibernate генерирует исключение, но SQL, который он генерирует, работает нормально, когда я запускаю его на своей СУБД - PullRequest
0 голосов
/ 07 октября 2019

Я только недавно внес некоторые изменения в свою структуру БД, и когда я собирался протестировать приложение, оно выдает исключение в простой repository.findByEmail (email), который я использую для входа в систему. Он выдает исключение, говорящее, что в одной из созданных мною новых таблиц есть столбец, который не существует (даже если он существует). Я включил ведение журнала SQL в hibernate, скопировал показанный запрос, который не работал, и запустил его на DBeaver, IDE, который я использую для запуска команд SQL, и он прекрасно работает.

Код SQL, сгенерированный Hibernate:

Hibernate: 
    select
        profile0_.id as id1_8_0_,
        profile0_.name as name2_8_0_,
        roles1_.id_profile as id_profi1_9_1_,
        role2_.id as id_role2_9_1_,
        role2_.id as id1_10_2_,
        role2_.name as name2_10_2_ 
    from
        profile profile0_ 
    left outer join
        profile_roles roles1_ 
            on profile0_.id=roles1_.id_profile 
    left outer join
        role role2_ 
            on roles1_.id_role=role2_.id 
    where
        profile0_.id=?

Сообщения об ошибках при отладке (я скопировал только основные, но могу отослать всю отладку, если это поможет:



2019-10-07 10:41:41.035  WARN 2492 --- [nio-8443-exec-6] o.h.engine.jdbc.spi.SqlExceptionHelper   : SQL Error: 0, 
SQLState: 42703
2019-10-07 10:41:41.035 ERROR 2492 --- [nio-8443-exec-6] o.h.engine.jdbc.spi.SqlExceptionHelper   : ERROR: column profile0_.id does not exist
  Posição: 245
2019-10-07 10:41:41.052  INFO 2492 --- [nio-8443-exec-6] o.h.e.internal.DefaultLoadEventListener  : HHH000327: Error performing load command : org.hibernate.exception.SQLGrammarException: could not extract ResultSet

org.hibernate.exception.SQLGrammarException: could not extract ResultSet
Caused by: org.postgresql.util.PSQLException: ERROR: column profile0_.id does not exist
org.springframework.dao.InvalidDataAccessResourceUsageException: could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet

1 Ответ

0 голосов
/ 07 октября 2019

Я понял, что случилось. У меня была другая таблица с таким именем в другой схеме, в которой не было этого столбца. Все, что мне нужно было сделать, это добавить свойство схемы в аннотацию @Table

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...