@Modifying @Query(value = "DELETE FROM sc WHERE sid = ? AND cid = ?", nativeQuery = true) void deleteSC(@Param("sid") int sid, @Param("cid") int cid);但是在查询时只显示delete from course where id=?(这不是期待的结果)应该如何修改
时间: 2024-02-15 11:05:47 浏览: 111
SpringData @Query和@Modifying注解原理解析
如果您只想查询 `delete from course where id=?` 的话,可以使用一个新的方法来实现:
```java
@Modifying
@Query(value = "DELETE FROM sc WHERE sid = :sid AND cid = :cid", nativeQuery = true)
void deleteSC(@Param("sid") int sid, @Param("cid") int cid);
@Query(value = "DELETE FROM course WHERE id = :id", nativeQuery = true)
void deleteCourseById(@Param("id") int id);
```
这样,您就可以通过调用 `deleteSC` 方法来删除 `sc` 表中 `sid` 和 `cid` 符合条件的记录,而调用 `deleteCourseById` 方法来删除 `course` 表中 `id` 等于参数 `id` 的记录。这两个方法都使用了 `@Query` 注解来指定要执行的 SQL 语句,并且 `deleteCourseById` 方法没有使用 `@Modifying` 注解,因为它只是一个查询操作,不会对数据库进行修改。
阅读全文