Java 如何从列表中创建数据并将其插入hibernate查询

Java 如何从列表中创建数据并将其插入hibernate查询,java,hibernate,hql,Java,Hibernate,Hql,我需要使用hibernate创建一个临时表,然后将列表中的数据插入该表。我的意思是: String hql = "create temporary table temp (id int)"; session.createQuery(hql); 在这个for循环中,我将列表中的数据插入表'temp': for(Example example : examples) { hql = "insert into temp (" + example.getId() + ")"; quer

我需要使用hibernate创建一个临时表,然后将列表中的数据插入该表。我的意思是:

String hql = "create temporary table temp (id int)";
session.createQuery(hql);
在这个for循环中,我将列表中的数据插入表'temp':

for(Example example : examples) {
    hql = "insert into temp (" + example.getId() + ")";
    query = session.createQuery(hql);
    query.executeUpdate();
}
当我用
examples
(这是一个列表)中的值填充该表时,我可以使用该表进行另一个查询。此表的创建和插入必须在“我的代码”中自动完成,并且不能在数据库中手动完成,因为列表
'examples'
就是代码


这是我对代码的看法,但它不起作用。有人能告诉我怎样才能正确地做到这一点吗?谢谢。

我认为Hibernate查询语言无法管理“创建”操作。如果使用EntityManager,可能需要在中使用createNativeQuery运行本机查询;如果使用Hibernate会话,可能需要在中使用createSQLQuery运行本机查询:

 String hql = "create temporary table temp (id int)";
 session.createSQLQuery(hql).executeUpdate();

您是否收到任何错误?如果是,请附上带有问题的堆栈跟踪@开发人员:我收到异常“意外令牌:创建”。正如我所猜测的,在hibernate中创建表与我所做的不同。我不知道怎么做。对不起,我不能在这里复制堆栈跟踪。请附加堆栈跟踪。这将非常有用。我不允许这样做。我删除了行
query.executeUpdate()现在没有例外,但我没有得到任何结果。我搜索了更多关于“在hibernate中创建和插入表”的信息,似乎我必须创建.hbm.xml文件……很难理解为什么要使用hibernate来完成此任务。ORM用于将域对象映射到数据库层,但您正在创建一些临时对象,可能是任意定义的对象。为什么不将sql用于此作业?insert呢?有什么想法吗?插入语法应该是
insert-INTO-TEMP-VALUES('VAL1')
要解决创建表的问题,您可以创建一个过程,并在createSQLQuery上使用
call myprocedure()
调用它