我正在寻找一种以编程方式对我的数据库执行任意SQL命令的方法。 (Hibernate,JPA,HSQL) Query.createNativeQuery()不适用于CREATE TABLE。
进行大量搜索,我想我可以使用Hibernate Session.doWork()。 通过使用已弃用的Configuration.buildSesionFactory()似乎表明doWork不起作用。 我得到"使用缺乏特权或未找到的对象"对于所有CREATE TABLE语句。
那么,执行仲裁SQL语句还有哪些其他技术? 关于使用底层JDBC语句有一些注意事项,但我还没有弄清楚如何从Hibernate获取JDBC Connection对象来尝试。
请注意,hibernate.hbm2ddl.auto = create设置对我来说不起作用,因为我有一个它所窒息的ARRAY []列。
答案 0 :(得分:1)
我认为使用Hibernate本机查询执行create table语句时没有任何问题。只需确保使用Query.executeUpdate()
,而不是Query.list()
或Query.uniqueResult()
。
如果它不起作用,请告诉我们执行它时会发生什么,并加入异常的完整堆栈跟踪和您正在执行的SQL查询。
答案 1 :(得分:0)