【发布时间】:2023-12-01 11:07:01
【问题描述】:
我想从 MySQL 表中删除记录。
我在扩展 JpaRepositoy 的接口中编写的查询是。
@Modifying
@Transactional
@Query(value="DELETE FROM tablename WHERE end_date>=?1 and username=?2 and start_date <=?3)
void deleteByStart_dateAndUsernameAndEnd_date(Date start_date,String username,Date end_date);
我想传递小于或等于 end_date 且 end_date 大于或等于 start_date 的 start_date。
我遇到了以下异常:
org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [delete from com.poc.pa.model.tablename where end_date>=?1 and username=?2 and start_date <=?3]; nested exception is java.lang.IllegalStateException: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [delete from com.poc.pa.model.tablename where end_date>=?1 and username=?2 and start_date <=?3]
任何帮助将不胜感激。
【问题讨论】:
-
我正在尝试使用上述查询执行删除操作。我想传递小于或等于 end_date 且 end_date 大于或等于 start_date 的 start_date 。
-
对不起,我的评论无关紧要,
-
因为它是一个 DML 语句,它似乎有写入操作的问题(根据异常消息)。您能否检查一下您是否有正确的导入:org.springframework.transaction.annotation.Transactional 和 org.springframework.data.jpa.repository.Modifying。您还可以检查您提到的连接到数据库的凭据是否应该在数据库上具有写入权限
标签: mysql hibernate spring-boot spring-data-jpa jpql