java - 如何创建列表中的数据并将其插入到 Hibernate 查询中

标签 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() + ")";
    query = session.createQuery(hql);
    query.executeUpdate();
}

当我用examples(这是一个列表)中的值填充表时,我可以使用该表进行另一个查询。创建和插入到该表必须在我的代码中自动完成,不能在数据库中手动完成,因为列表 'examples' 是由代码创建的。

这是我对代码的看法,但它不起作用。谁能告诉我如何以正确的方式做到这一点?谢谢。

最佳答案

我不认为 Hibernate 查询语言管理“创建”操作。如果您使用 EntityManager,则可能需要在使用 createNativeQuery 时运行 native 查询;如果您使用 Hibernate Session,则可能需要在 createSQLQuery 中运行 native 查询:

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

关于java - 如何创建列表中的数据并将其插入到 Hibernate 查询中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29797837/

相关文章:

hibernate - 更新 JPA-Hibernate 实体而不从数据库中选择它

java - Hibernate HQL 返回过时的数据?

hadoop - 如何允许 hive.mapred.mode=nonstrict?

java - 好奇的Spring AOP异常

java - 向现有的 java 程序添加循环?

java - Maven - 如何为 hibernate 添加所有必需的依赖项?

hibernate - 在 Hibernate 中使用查询映射实体

java - 界面设计问题: Storing Result of Transactions

java - `private void readObject(ObjectInputStream stream)`如何在Java中自定义序列化返回一个对象?

mysql - Hibernate、Null 值和 nativeSQL