Caused by: java.lang.IllegalArgumentException: Modifying queries can only use void or int/Integer as...
时间: 2024-05-13 14:18:59 浏览: 262
这个错误通常发生在使用 Hibernate 进行数据库操作时,修改查询时返回值的类型不正确。Hibernate 的修改查询必须返回 void 或 int/Integer 类型,因为它们表示受影响的行数。
确保你的修改查询返回类型设置为 void 或 int/Integer。例如:
```java
@Modifying
@Query("UPDATE User u SET u.name = ?1 WHERE u.id = ?2")
void updateUserNameById(String name, Long id);
```
如果你的查询返回类型不正确,将会抛出类似于“java.lang.IllegalArgumentException: Modifying queries can only use void or int/Integer as return type! ”的异常。
相关问题
Caused by:java.lang.ExceptionInInitializerError: null;Caused by: java.lang.IllegalArgumentException: name
这个错误链显示了一个嵌套的异常结构。最内层的错误是`java.lang.IllegalArgumentException`,它指出有一个名为"name"的参数无效或不符合预期。这个异常是在尝试创建或初始化某个对象时发生的,可能是由于传入的名称为空或者不符合规范。
外层的`java.lang.ExceptionInInitializerError`则表明这个错误发生在对象的初始化(initialization error)阶段,也就是在静态变量初始化或者静态代码块执行时。这通常是由于内部的初始化过程引发了上述`IllegalArgumentException`。
要解决这个问题,你需要检查代码中涉及名字验证的地方,确认输入的名称是否满足条件,并修复可能导致异常的逻辑。如果这个错误出现在Spring的配置中,可能是依赖注入或者bean的定义存在问题。
Caused by: java.lang.IllegalArgumentException: java.lang.IllegalArgumentException: Mapped Statements 这个报错什么原因
Caused by: java.lang.IllegalArgumentException: java.lang.IllegalArgumentException: Mapped Statements这个报错通常是由于MyBatis中的Mapped Statements集合中存在重复的值导致的。这可能是由于在Mapper接口中定义了多个相同名称的方法,或者在XML映射文件中定义了多个相同ID的语句。请检查Mapper接口和XML映射文件,确保每个方法和语句都具有唯一的名称或ID。如果有重复的,请删除其中一个以解决冲突。
阅读全文