Я унаследовал некоторый код, который я пытаюсь понять, и любой поиск, который я делаю, чтобы найти что-то на @SelectProvider
, ничего не дает.
DAO для Java
@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();
}
}
Какой цели служит параметр parentId в этом коде? Насколько я могу судить, на самом деле он никогда ничего не делает, если только каким-то волшебным образом #{parentId} не заменяется значением. Этот параметр просто не используется в этой ситуации? Где mybatis
на самом деле делает инъекции в запрос?