在我的Spring JPA应用程序中,我有一个名为findAllByNameContaining的查询方法,它处理简单的一个单词的参数。
例如,在数据库中有一个字段值为'Foo bar zed‘的记录,如果用'Foo’调用,query方法将返回该记录。
但是,如果使用'Foo zed‘调用query方法,我希望记录被恢复。我尝试将搜索词中的空格替换为'%‘。这没有返回任何东西,当我检查生成的SQL时,我看到添加到搜索词中的'%‘被转义。我知道这可能是对SQL注入的保护,但我想知道是否有任何方法可以阻止Sopring转义。我可以自己验证参数以防止SQL注入。
发布于 2020-10-05 21:30:02
改为使用findByNameLike,并将通配符放入参数中的任意位置。
请注意,您必须在参数中提供所有通配符,Spring数据本身不会添加任何通配符,但它也不会转义任何通配符。
https://stackoverflow.com/questions/64209473
复制相似问题