当前位置: 首页 > 面试题库 >

在Hibernate中使用HQL在一个表中插入数据

柯镜
2023-03-14
问题内容

我在阅读Hibernate HQL教程时发现HQL不支持,INSERT INTO..VALUES..但是INSERT INTO..SELECT..HQL仅支持从另一个表插入。

假设我要在一个表中插入相同的值,并且该数据不是来自任何其他表,即该值不在任何其他表中,那么我该如何在HQL中执行此操作?

另外,是否想知道HQL中此类限制的背后原因?


问题答案:

如果数据来自另一个表,则无需使用hql进行插入。

只需获取对您实体的引用,保留一个Hibernate会话,然后调用save()。

根据http://docs.jboss.org/hibernate/orm/4.0/devguide/zh-
CN/html/ch04.html#d0e2116

INSERT语句的伪语法

插入到EntityName properties_list select_statement

仅支持INSERT INTO … SELECT …形式。 您不能指定要插入的显式值。



 类似资料:
  • 我的代码是这样的:我想选择两个表中的数据 和myeclipese给出错误消息: 请帮帮我,我测试了一整夜! 我的MainType实体如下所示: 和映射,如下所示:

  • 我的pl/sql代码有问题。问题是:当我使用tns(用于远程数据库连接)尝试正常插入时,一切都正常 ORA-06512:a ligne 36 02069。00000-“此操作的全局_名称参数必须设置为TRUE”*原因:需要语句的远程映射,但无法实现,因为要实现它,全局_名称应设置为TRUE*操作:如果可能,发出alter session set global_名称=TRUE 问题是,当我将全局_名

  • 问题内容: 我想从一个表中读取所有数据,然后将一些数据插入到另一个表中。我的查询是 但我有一个错误 请帮我。 问题答案: 您可以使用INSERT … SELECT语法。请注意,您可以在SELECT部分​​中直接引用“ 1”。

  • 问题内容: 与hibernate和spring社交一起工作, 我正在尝试通过电子邮件地址查询数据库。当我执行此查询时: 公共帐户findAccountByUsername(String username){ = “+username; Query query = session.createQuery(selectQuery); @SuppressWarnings(“unchecked”) Lis

  • 我正在使用hibernate 4.x,想在HQL查询中设置MySQL的“SQL_NO_CACHE”语句 目前生产 但我想要 但我不知道怎么做。 使用本机查询没有问题,但所有查询都是用HQL编写的,比本例复杂得多。因此,我得到了一个<code>QuerySyntaxException:意外的标记</code>异常,因为在hibernate文档中无论如何都没有记录该语句。 http://docs.jb

  • persistence.xml文件 http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd“>org.hibernate.ejb.hibernatePersistence