【发布时间】:2018-11-15 15:14:26
【问题描述】:
我有一个班级用户,我需要更新 loginCount 和 lastLogin。 有些用户已经登录并更新了数据,所以我想将那里的 loginCount 更新为 1。
我尝试使用 JPQL。
我创建了一个查询,我将 loginCount 变量 = 1、lastLogin 作为 currentDate 和 ids 作为 CommaSeparatedString 的所有 id 的组合。
@Query("update User u set u.loginCount = :loginCount, u.lastLogin = :lastLogin where u.id IN (:ids)")
void updateUserInitialLoginCount(@Param("loginCount") Long loginCount, @Param("lastLogin") Date lastLogin, @Param("ids") String ids);
我想使用“IN”子句,但在这里我遇到了一个问题,即通过使用 IN 子句,我必须有一个逗号分隔的字符串,但我发现的 id 是 Long 类型。
ERROR: Parameter value [1,2] did not match expected type [java.lang.Long(n/a)]
有没有办法解决这个问题?
【问题讨论】:
-
您需要将
ids作为List<Long> ids传递,并在方法参数中更改ids的参数类型。 -
感谢 Erfan Ahmed Emon