Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何以编程方式对Hibernate/HSQL数据库运行任意SQL语句?_Sql_Hibernate_Jpa_Jdbc - Fatal编程技术网

如何以编程方式对Hibernate/HSQL数据库运行任意SQL语句?

如何以编程方式对Hibernate/HSQL数据库运行任意SQL语句?,sql,hibernate,jpa,jdbc,Sql,Hibernate,Jpa,Jdbc,我正在寻找一种对我的数据库以编程方式执行任意SQL命令的方法。 (Hibernate、JPA、HSQL) createNativeQuery()不适用于创建表之类的操作 在进行大量搜索时,我想我可以使用Hibernate Session.doWork()。 通过使用不推荐使用的配置,buildSesionFactory()似乎表明doWork无法工作。 对于所有CREATETABLE语句,我都会得到“use缺少特权或找不到对象” 那么,执行仲裁SQL语句还有什么其他技术呢? 有一些关于使用底层J

我正在寻找一种对我的数据库以编程方式执行任意SQL命令的方法。 (Hibernate、JPA、HSQL) createNativeQuery()不适用于创建表之类的操作

在进行大量搜索时,我想我可以使用Hibernate Session.doWork()。 通过使用不推荐使用的配置,buildSesionFactory()似乎表明doWork无法工作。 对于所有CREATETABLE语句,我都会得到“use缺少特权或找不到对象”

那么,执行仲裁SQL语句还有什么其他技术呢? 有一些关于使用底层JDBC语句的说明,但我还没有弄清楚如何从Hibernate获取JDBC连接对象来尝试


请注意,hibernate.hbm2ddl.auto=create设置对我不起作用,因为我有数组[]列,它会阻塞这些列。

我认为使用hibernate本机查询执行create table语句没有任何问题。只需确保使用
Query.executeUpdate()
,而不是
Query.list()
Query.uniqueResult()


如果它不起作用,请告诉我们执行它时会发生什么,并加入异常的完整堆栈跟踪和正在执行的SQL查询。

我认为使用Hibernate本机查询执行create table语句没有任何问题。只需确保使用
Query.executeUpdate()
,而不是
Query.list()
Query.uniqueResult()

如果它不起作用,请告诉我们执行它时会发生什么,并加入异常的完整堆栈跟踪和正在执行的SQL查询。

HSQL中的“use Loss privilege or object not found”可能意味着什么,例如存在同名表。HSQL中的错误消息完全具有误导性。尝试使用DatabaseMetadata列出您的表-您可能已经创建了该表。

HSQL中的“使用缺少权限或找不到对象”可能意味着任何事情,例如存在同名表。HSQL中的错误消息完全具有误导性。尝试使用DatabaseMetadata列出表-您可能已经创建了表