JPA 执行update/delete query 需要加上事务

简介: Caused by: org.springframework.dao.InvalidDataAccessApiUsageException: Executing an update/delete query; nested exception is javax.

Caused by: org.springframework.dao.InvalidDataAccessApiUsageException: Executing an update/delete query; nested exception is javax.persistence.TransactionRequiredException: Executing an update/delete query

package com.easy.kotlin.picturecrawler.dao

import com.easy.kotlin.picturecrawler.entity.SearchKeyWord
import org.springframework.data.jpa.repository.Modifying
import org.springframework.data.jpa.repository.Query
import org.springframework.data.repository.PagingAndSortingRepository
import org.springframework.data.repository.query.Param
import org.springframework.transaction.annotation.Transactional


/**
 * Created by jack on 2017/7/17.
 */

interface SearchKeyWordRepository : PagingAndSortingRepository<SearchKeyWord, Long> {
    @Modifying
    @Transactional
    @Query(value = "INSERT INTO `search_key_word` (`deleted_date`, `gmt_created`, `gmt_modified`, `is_deleted`, `key_word`) VALUES (now(), now(), now(), '0', :keyWord) ON DUPLICATE KEY UPDATE `gmt_modified` = now()", nativeQuery = true)
    fun saveOnNoDuplicateKey(@Param("keyWord") keyWord: String): Int
}

相关文章
|
7月前
【开发专题_02】Executing an update/delete query
【开发专题_02】Executing an update/delete query
75 0
|
7月前
|
存储 安全 Java
C++ delete语句
C++ delete语句
49 0
|
7月前
|
SQL 测试技术 数据库
`SELECT ... FOR UPDATE` 语句是如何工作的?
`SELECT ... FOR UPDATE` 语句是如何工作的?
206 0
|
7月前
|
SQL
DML(insert与delete)
DML(insert与delete)
47 0
[已解决]SpringDataJPA+Hibernate在执行executeUpdate()的时候报错 Executing an update/delete query
[已解决]SpringDataJPA+Hibernate在执行executeUpdate()的时候报错 Executing an update/delete query
|
SQL 关系型数据库 数据库
如何实现update select 语句
​ 这次的文章出现也是因为这样一个类似的需求,个人需要把一个30万行(后续会发文介绍常见的处理手段)的数据文件入库,同时需要将部分字段迁移到另一张表,两个表之间通过两个字段进行and匹配。
209 0
|
消息中间件 JavaScript 小程序
一个update语句执行要10s,大厂的架构真垃圾!
一个update语句执行要10s,大厂的架构真垃圾!
|
SQL 存储 缓存
执行update语句,用没用到索引,区别大吗?
我们都知道,当执行 select 查询语句时,用没用到索引区别是很大的,若没用到索引,一条 select 语句可能执行好几秒或更久,若使用到索引则可能瞬间完成。那么当执行 update 语句时,用没用到索引有什么区别呢,执行时间相差大吗?本篇文章我们一起来探究下。
430 0
|
SQL Go
sql server 带有OUTPUT的INSERT,DELETE,UPDATE
原文:sql server 带有OUTPUT的INSERT,DELETE,UPDATE OUTPUT是SQL SERVER2005的新特性.
1227 0