Hibernate刷新物化视图

Hibernate刷新物化视图,hibernate,Hibernate,我遇到了使用以下代码刷新物化视图(POSGRESQL)的麻烦: String hql = "refresh materialized view mv_all_operations; refresh materialized view mv_all_members;"; createQuery(hql).executeUpdate(); 例外情况: antlr.NoViableAltException: unexpected token: refresh at org.hiber

我遇到了使用以下代码刷新物化视图(POSGRESQL)的麻烦:

String hql = "refresh materialized view mv_all_operations; refresh materialized view mv_all_members;";
createQuery(hql).executeUpdate();
例外情况:

antlr.NoViableAltException: unexpected token: refresh
        at org.hibernate.hql.internal.antlr.HqlBaseParser.statement(HqlBaseParser.java:169) ~[hibernate-core-4.2.7.Final.jar:4.2.7.Final]
        at org.hibernate.hql.internal.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:268) ~[hibernate-core-4.2.7.Final.jar:4.2.7.Final]
        at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:182) ~[hibernate-core-4.2.7.Final.jar:4.2.7.Final]
        at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:138) ~[hibernate-core-4.2.7.Final.jar:4.2.7.Final]
        at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:105) [hibernate-core-4.2.7.Final.jar:4.2.7.Final]
        at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:80) [hibernate-core-4.2.7.Final.jar:4.2.7.Final]
        at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:168) [hibernate-core-4.2.7.Final.jar:4.2.7.Final]
        at org.hibernate.internal.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:221) [hibernate-core-4.2.7.Final.jar:4.2.7.Final]
        at org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:199) [hibernate-core-4.2.7.Final.jar:4.2.7.Final]
        at org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1784) [hibernate-core-4.2.7.Final.jar:4.2.7.Final]
antlr.noviablealException:意外标记:刷新
在org.hibernate.hql.internal.antlr.HqlBaseParser.statement(HqlBaseParser.java:169)~[hibernate-core-4.2.7.Final.jar:4.2.7.Final]
在org.hibernate.hql.internal.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:268)~[hibernate-core-4.2.7.Final.jar:4.2.7.Final]
在org.hibernate.hql.internal.ast.QueryTranslatorImpl.docomfile(QueryTranslatorImpl.java:182)~[hibernate-core-4.2.7.Final.jar:4.2.7.Final]
在org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:138)~[hibernate-core-4.2.7.Final.jar:4.2.7.Final]
在org.hibernate.engine.query.spi.HQLQueryPlan.(HQLQueryPlan.java:105)[hibernate-core-4.2.7.Final.jar:4.2.7.Final]
在org.hibernate.engine.query.spi.HQLQueryPlan.(HQLQueryPlan.java:80)[hibernate-core-4.2.7.Final.jar:4.2.7.Final]
在org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:168)[hibernate-core-4.2.7.Final.jar:4.2.7.Final]
在org.hibernate.internal.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:221)[hibernate-core-4.2.7.Final.jar:4.2.7.Final]
在org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:199)[hibernate-core-4.2.7.Final.jar:4.2.7.Final]
在org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1784)[hibernate-core-4.2.7.Final.jar:4.2.7.Final]

似乎我不能以这种方式更新我的视图,但我找不到任何其他机会在代码中这样做。有什么建议吗?

使用本机查询而不是hql

String sql = "refresh materialized view mv_all_operations; refresh materialized view mv_all_members;";
createNativeQuery(sql).executeUpdate();

使用本机查询而不是HQL与我做的完全相同,这对我很有帮助,谢谢!