Отношение XX не существует; не удалось извлечь ошибку набора результатов при использовании исключения представления convertHibernateAccessException

#postgresql #spring-boot #hibernate #hibernate-mapping #sql-view

Вопрос:

Я использую представление в своем классе сущностей. Хотя сопоставления столбцов представления точно такие же, как в классе сущностей, я получаю исключение «ОШИБКА: отношение «location_view» не существует- Позиция: 15 — базовое исключение-исключение SQLGrammarException не удалось извлечь набор результатов в org.springframework.orm.jpa.vendor.Исключение HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:261)»

Когда я заменяю представление базовым SQL-запросом, оно работает в SpringBoot. Не могли бы вы, пожалуйста, сообщить мне, где я ошибаюсь?

 @Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Data
@ToString
@Entity
@Table(name = "location_view")
public class Location{
    @Id
    @Column(name = "id")
    long id;
  
    @Column(name = "name")
    String name;

    @Column(name = "total")
    long total;

    @Column(name = "created_by")
    long createdBy;

    @Column(name = "created_on")
    Timestamp createdOn;
}

public interface LocationDAO extends JpaRepository<Location, Long> {
    @Query(value = "select * from location_view", nativeQuery = true)
    List<Location> getLocations();
}
 

В моем контроллере я вызываю LocationDAO.getLocations();

Ответ №1:

Возможно, таблица/представление находится в другой схеме? Или, может быть, у пользователя для подключения JDBC нет разрешения на чтение из этой таблицы/представления?