Hibernate多个本机SQL语句

我想使用Hibernate从文件运行本机SQL。 SQL可以包含几个创建数据库结构的语句(即表,约束但没有插入/更新/删除语句)。

例如,下面是非常简单的查询(其中包含以下两个SQL语句)

CREATE DATABASE test; CREATE TABLE test.testtbl( id int(5)); 

我正在使用MySQL db,当我运行上面的查询时,我得到了gettng语法错误。 当我一个接一个地运行它时,它没问题。

 Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE TABLE test.testtbl( id int(5))' at line 1 

运行查询的代码如下(上面的语句分配给’sql’变量):

 session = sf.openSession(); session.beginTransaction(); Query qry = session.createSQLQuery(sql); qry.executeUpdate(); session.getTransaction().commit(); 

任何帮助,将不胜感激。

正如其他人所解释的
您必须逐个运行这些查询。
hibernate代码被转换为在JDBC上运行一个update语句。
但是您提供了两个更新语句。
此外,
我个人更喜欢在一些数据库脚本中使用在Java应用程序之外创建表的代码。

createSQLQuery方法的参数是t-sql代码; t-sql代码确保在mysql接口分析器中正确。 您可以尝试更改sql:’CREATE TABLE testtbl(id int(5));’ 顺便说一句,您可以使用JDBC Connection api(不建议这样做)例如:java.sql.Connection conn = session.connection();