执行原生态的SQL(删除语句)报错了,请大神帮忙看看?

2025-06-24 15:40:05
推荐回答(4个)
回答1:

需要启用事务,你在执行update操作
你看一下em有没有beginTransaction()之类的方法。

1、若你有使用spring,可以在这个方法体上加上注解:@Transactional
2、在执行query.executeUpdate();的之前增加一句em.joinTransation();

回答2:

SQL的删除语句就是DELETE 语句

DELETE 语句用于删除表中的行。

语法:DELETE FROM 表名称 WHERE 列名称 = 值

删除某行:DELETE FROM 表名称 WHERE  列名称 = 值(删除条件)

删除所有行:可以在不删除表的情况下删除所有的行。这意味着表的结构、属性和索引都是完整的:DELETE FROM 表名  或者:DELETE * FROM 表名 。

通过使用 DROP 语句,可以轻松地删除索引、表和数据库。

DROP  INDEX  索引名称

DROP TABLE 表名称

DROP DATABASE  数据库名称

不删除表,只删除表中的数据:TRUNCATE TABLE 表名称

文中的错误主要在以下几个方面:

第一,文中所使用的“createNativeQuery”方法只能用于查询,不能用于增删改。

第二,需要启用事务,你在执行“update”中操作

第三,你看一下em中有没有beginTransaction()之类的方法。

1、若你有使用spring,可以在这个方法体上加上注解:@Transactional

2、在执行query.executeUpdate();的之前增加一句em.joinTransation();

回答3:

createNativeQuery
方法只能用于查询哈 不能用于增删改

回答4:

异常提示需要使用事务。
加上注解@Transactional试试看。