我偶然发现了JPA @Query的奇怪行为。对equals比较和LIKE比较使用相同的参数将始终在参数之前和之后加上%
,从而使equals比较始终失败。有人可以确认甚至解释吗?
示例:
@Query("SELECT * FROM User u WHERE u.name = :term OR u.username LIKE %:term%")
List<Users> getUsers(final String term);
使用getUsers("Jonas")
调用并检查SQL日志记录时,参数为%Jonas%
,这意味着= :term
检查将始终失败。
有人对此有任何见识吗?我还没有发现错误报告或其他任何提及此问题的问题。 谢谢!