【发布时间】: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