【发布时间】:2015-01-04 11:57:32
【问题描述】:
如何从我的 JPA 环境中调用 CREATE MATERIALIZED VIEW 语句?当前,该语句位于从应用上下文加载的文件中。我只想执行它。
我可以使用 EntityManager 来执行 sql 脚本还是应该创建一个语句?
Session session = (Session) em.getDelegate();
SessionFactoryImplementor sfi = (SessionFactoryImplementor) session.getSessionFactory();
ConnectionProvider cp = sfi.getConnectionProvider();
Connection connection = cp.getConnection();
Statement statement = connection.createStatement();
statement.execute(sql);
我试过了,但刚刚收到“缺少标识符\n”。也许这是因为我的陈述以新行开头,但这不应该是问题。脚本本身没问题,例如在由 SQL*Plus 执行时可以工作。
另外我也试过了
em.createNativeQuery(sql);
但收到“javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not extract ResultSet”。
有什么想法或例子吗?
ad:我在后面使用 Oracle 12c。
【问题讨论】:
标签: java hibernate jpa entitymanager materialized-views