我正在尝试更新我在arraylist中拥有id的每条记录但是我收到此错误:

IllegalStateException occured : org.hibernate.hql.QueryExecutionRequestException: Not supported for DML operations [update models.UserOnline uo SET currentRoom_id = :roomid where uo.id IN (:list)]

这就是我正在尝试的:

    Query update_query = JPA.em().createQuery("update UserOnline uo SET currentRoom_id = :roomid where uo.id IN (:list)");
    update_query.setParameter("roomid", null);
    update_query.setParameter("list", idlist);

    List<UserOnline> actual = update_query.getResultList();

有什么想法有什么不对吗?

===============>>#1 票数:1 已采纳

我会尝试使用update_query.executeUpdate();

来自文档

===============>>#2 票数:1

就像Gonzalo已经说过的那样,你必须使用executeUpdate ()。

这是因为你实际上修改了数据

如果要从数据库中获取数据则只使用getResultList()或getSingleResult()

一个小帮手:如果您的查询有表单,请使用executeUpdate ()

UPDATE ... SET .. WHERE ..
or
DELETE ... WHERE ...

如果查询看起来像是使用getResultList ()或getSingleResult ()

SELECT ... FROM xxx WHERE ... 
or just
FROM xxx WHERE ... 

===============>>#3 票数:0

好吧,如果我们使用Spring Repositories(CrudRepository或其任何类型),并且如果我们有一个带有更新Query的方法声明,那么,

@Query(“update employee e set e.name =:name where e.id =:id”)int updateEmployee(@Param(“name”)String name,@ Param(“id”)Long id);

然后我们将得到相关的Spring Exception org.springframework.dao.InvalidDataAccessApiUsageException:org.hibernate.hql.internal.QueryExecutionRequestException:不支持DML操作

只需在方法上添加@Modifying注释就可以了。

  ask by translate from so

未解决问题?本站智能推荐:

2回复

加入JPQL,CreateQuery

试图弄清JPQL CreateQuery上的联接如何工作。 我对带有SQL代码的经理姓名有部分搜索功能: 我试图将其转换为JPQL格式,然后提出了以下建议: 假设用户将“ ill gat”的值输入到strMgr以搜索经理名称“ Bill Gates”。 它应该搜索经理帐单门下
1回复

选择与JPQL /休眠的ManytoMany关系中的项目

如何轻松选择Model Article的记录,其中Category是ID为x的类别。 文章和类别之间存在许多对多关系。 (文章模型中的链接字段是类别。) 我必须构建查询,因为它会根据一组变量提供一个包含可用文章的列表。 例如,我尝试了类似的方法(但显然不起作用): 然后进行查
1回复

子查询的jpql顺序产生意外的AST节点异常

我将一个工作(postgre)sql查询翻译成jpql,但是hibernate抛出一个 org.hibernate.hql.ast.QuerySyntaxException:意外的AST节点异常 这些是我的核心模型类: 这是我的jpql查询: 任何人都可以解释异
1回复

JPQL并使用Hibernate选择1:n关系

我有一个菜单项,其中有一种语言。 我也有一个需要所有菜单项的设备,这些菜单项具有该设备选择的语言。 (然后还有一个AccessGroup,它确定设备是否有权访问MenuItem) 我有一个查询,该查询适用于AccessGroup选择,但无法考虑如何制定查询以包括语言选择。 简化:
3回复

为什么String需要Hibernate JPQL Type Cast

我正在使用Play! 小应用程序的框架。 在模型中,我有以下查询: 这与内存DB H2完美配合,但是当我使用Postgres时,我收到以下错误: 当我转换参数时: 然后它工作。 但为什么这是必要的。 这可能是一个Hibernate错误吗? 更新:我将播放版本
1回复

使用JPQL在模型中选择的最简单方法

我有三种模式的休眠数据库: 我想选择所有具有特定应用类别的文章。 所以我试图创建类似的东西: 像这样的东西对我来说适用于CoreData,但显然不适用于JPA,而且我似乎找不到能够做到这一点的方法。 编辑:澄清:在文章中: 在类别中: 在应用中:
1回复

如何使用Play,MySQL和Hibernate自定义查询ManyToMany表?

我是Play和Hibernate的新手,正在从事一个项目。 到目前为止,我喜欢它! 我最近遇到了一个新问题。 我有一桌人。 然后,在该类中有一个引用自己的ManyToMany关系。 因此,Hibernate可以很好地创建该表,并且我有peopleid1和peopleid2,人们可以
2回复

JPQL标准查询播放框架1x内部联接和子句构造位置

我一直在尝试在JPA中构建以下SQL查询(对于Java和JPA还是新手,我进行了很多搜索,但仍然没有得到它,抱歉,这是一个菜鸟问题)。 JPQL查询几乎可以完成我想要的工作 SentenceWord和Word都是类SentenceWord是Sentence和Word之间的ManyT
1回复

在JPQL查询中使用数组

如何在JPQL查询中使用数组列表? 我想要这样的事情:我正在传递这个 成 目前,错误是
2回复

为什么jpql中没有插入查询

我正在使用dropwizard休眠,在那里我正在使用@NamedQuery()我找不到任何源来将数据放入数据库