【问题标题】:JDBC - select query from a materialized view does not workJDBC - 从物化视图中选择查询不起作用
【发布时间】:2020-09-21 15:52:21
【问题描述】:

我正在尝试使用 jdbc 从物化视图创建选择查询。这是我的实际代码:

Query q = entityManager.createNativeQuery("SELECT v.name FROM my_materialized_view v");
List<Object[]> authors = q.getResultList();

但是当我运行这段代码时,我得到了以下错误:

javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not prepare statement

在这种情况下有特定的选择物化视图吗?因为如果我使用从普通表中查询的代码,它就可以完美地工作......

【问题讨论】:

  • 您是否专门尝试仅选择列name? (请注意,您使用的是原始类型,这绝不是一个好习惯,尽管我不认为它直接导致错误。)
  • 不,这只是一个例子。我需要选择更多列。顺便说一句,我试过没有 SQL ALIAS 并且错误仍然存​​在:x
  • 如果您选择多个列,在 JPA 中通常的做法是定义一个类 ViewRecord 并在查询中使用它。您通常甚至可以将其写为@Entity 并使用标准查询机制;提供数据的表是视图这一事实对 Hibernate 是透明的。
  • 也许我明白...但是,你能帮我写一个小例子吗?
  • @tc9900 你能提供完整的堆栈跟踪吗?

标签: java postgresql hibernate jdbc nativequery


【解决方案1】:

不要使用 SQL ALIAS

试试

"SELECT name FROM my_materialized_view"

【讨论】:

  • 我已经尝试不使用 SQL ALIAS 但错误仍然相同...
  • 别名是完全有效的SQL
猜你喜欢
  • 2022-11-24
  • 2013-01-25
  • 1970-01-01
  • 2018-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多