Я унаследовал некоторый код, который пытаюсь понять, и любой поиск, который я выполняю, чтобы найти что-то на @SelectProvider
, приводит к большому количеству ничего.
Java DAO
@SelectProvider(type = CategoryDaoSelectProvider.class, method = "findByParentIdAndName")
Category findByParentIdAndName(@Param("parentId") Long parentId, @Param("name") String name);
Выбор поставщика
public class CategoryDaoSelectProvider {
public static String findByParentIdAndName(Map<String, Object> params) {
Long parentId = (Long)params.get("parentId"); // WHY IS THIS HERE???
StringBuffer buffer = new StringBuffer();
buffer.append("SELECT COUNT(id) FROM Category ");
if (parentId == null) {
buffer.append("WHERE parentId IS NULL ");
} else {
buffer.append("WHERE parentId = #{parentId} ");
}
buffer.append("AND LOWER(name) = LOWER(#{name}) ");
return buffer.toString();
}
}
Какую цель выполняет param parentId в этом коде?Насколько я могу судить, он на самом деле никогда ничего не делает, если каким-то волшебным образом не заменить # {parentId} значением.Этот параметр просто не используется в этой ситуации?Где mybatis
фактически делает инъекции в запрос?