diff --git a/src/main/kotlin/org/domaframework/doma/intellij/inspection/dao/visitor/DaoMethodVariableSqlVisitor.kt b/src/main/kotlin/org/domaframework/doma/intellij/inspection/dao/visitor/DaoMethodVariableSqlVisitor.kt index 9a6c10d3..fb91231a 100644 --- a/src/main/kotlin/org/domaframework/doma/intellij/inspection/dao/visitor/DaoMethodVariableSqlVisitor.kt +++ b/src/main/kotlin/org/domaframework/doma/intellij/inspection/dao/visitor/DaoMethodVariableSqlVisitor.kt @@ -39,11 +39,13 @@ class DaoMethodVariableSqlVisitor( // Recursively explore child elements in a file with PsiRecursiveElementVisitor. override fun visitElement(element: PsiElement) { + val prevElementType = PsiTreeUtil.prevLeaf(element)?.elementType if (( element.elementType == SqlTypes.EL_IDENTIFIER || element is SqlElPrimaryExpr ) && - PsiTreeUtil.prevLeaf(element)?.elementType != SqlTypes.DOT + prevElementType != SqlTypes.DOT && + prevElementType != SqlTypes.AT_SIGN ) { iterator = args.minus(elements.toSet()).iterator() while (iterator.hasNext()) { diff --git a/src/test/testData/src/main/java/doma/example/dao/DaoMethodVariableInspectionTestDao.java b/src/test/testData/src/main/java/doma/example/dao/DaoMethodVariableInspectionTestDao.java index 920fda60..98eb8952 100644 --- a/src/test/testData/src/main/java/doma/example/dao/DaoMethodVariableInspectionTestDao.java +++ b/src/test/testData/src/main/java/doma/example/dao/DaoMethodVariableInspectionTestDao.java @@ -32,8 +32,11 @@ interface DaoMethodVariableInspectionTestDao { List nonExistSQLFile(String name); @Select - @Sql("select * from employee where name = /* employee.employeeName */'test'") - Employee noArgumentsUsedInSQLAnnotations(Employee employee,String employeeName); + @Sql("select * from employee where name = /* employee.employeeName */'test' and status = /* @doma.example.entity.Project@status */'status'") + Employee noArgumentsUsedInSQLAnnotations(Employee employee, + String employeeName, + String status, + String doma); @SqlProcessor R biFunctionDoesNotCauseError(Integer id, BiFunction handler); @@ -42,10 +45,12 @@ interface DaoMethodVariableInspectionTestDao { Project selectOptionDoesNotCauseError(Employee employee,String searchName,SelectOptions options); @Select(strategy = SelectType.COLLECT) - Project collectDoesNotCauseError(Employee employee,Integer id,Collector collector); + Project collectDoesNotCauseError(Employee employee,Integer id, + Collector collector); @Select - Project collectDoesCauseError(Employee employee,String searchName,Collector collector); + Project collectDoesCauseError(Employee employee,String searchName, + Collector collector); @Select Project noErrorWhenUsedInFunctionParameters(Employee employee, Integer count);