"Not supported for DML operations" with simple UPDATE query "Not supported for DML operations" with simple UPDATE query sql sql

"Not supported for DML operations" with simple UPDATE query


Check the post hibernate hql ERROR: Not supported for DML operations in the hibernate users forum.

Most likely you called

querySt.list();

for your UPDATE query. Instead you should call

querySt.executeUpdate();


I was also having the same problem with annotations.After searching and doing some tricks I was able to solve it.There are some below steps which you need to verify while using DML operation with JPA.

  1. Use anotation@Modifying(org.springframework.data.jpa.repository.Modifying) and @Transactional(org.springframework.transaction.annotation.Transactional) on required method.

  2. Use void as return type of method.

e.g:-

@Modifying@Query("UPDATE ProcedureDTO o SET o.isSelectedByUser =?1")@Transactionalpublic void getListOfProcedureBasedOnSelection(Boolean isSelected);```


I had exact same problem, in my case I had to only add @Modifying annotation. According to documentation:

Indicates a query method should be considered as modifying query as that changes the way it needs to be executed. This annotation is only considered if used on query methods defined through a Query annotation. It's not applied on custom implementation methods or queries derived from the method name as they already have control over the underlying data access APIs or specify if they are modifying by their name.Queries that require a @Modifying annotation include INSERT, UPDATE, DELETE, and DDL statements.