이해하려고하는 일부 코드를 상속 받았으며 @SelectProvider
에서 찾은 결과가 전혀 없습니다.@SelectProvider에서 mybatis 매개 변수 대체가 작동하는 방법
자바 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
은 실제로 쿼리에 주입을 수행합니까?
나는 당신이 말하는 것을 이해하고 있습니다 ... 제가 물어 본 라인이 아무 것도하지 않는다는 것을 읽는 누군가를 지적하고 싶습니다. 우리는 parentId에 대한 값을 얻지 만 아무것도하지 않습니다. 이 코드에서이 코드 라인은 아무런 도움이되지 않습니다. – kasdega