如何在JPA/Hibernate中执行本机SQL脚本?

Ank*_*nke 38 sql oracle hibernate jpa

我有一个带有数据库转储的SQL脚本.如何使用Hibernate执行它EntityManager

我这样试过:

EntityManager manager = getEntityManager(); 
Query q = manager.createNativeQuery(sqlScript);
q.executeUpdate();
Run Code Online (Sandbox Code Playgroud)

但它只在sqlScript包含单个SQL查询时才有效,而我需要运行多个插入和其他复杂的东西.

RDBMS:Oracle Database 11g Express Edition版本11.2.0.2.0 - 64位生产

hku*_*uay 60

用begin end block包装你的查询.喜欢

EntityManager manager = getEntityManager(); 
Query q = manager.createNativeQuery("BEGIN " + sqlScript + " END;");
q.executeUpdate();
Run Code Online (Sandbox Code Playgroud)

  • 这是 Oracle 的答案。省略分号,它可能在MySql上工作。 (2认同)