Skip to content

Commit 62a61d8

Browse files
committed
Support @datatype for DAO method parameter types
1 parent 45d59ac commit 62a61d8

File tree

2 files changed

+76
-2
lines changed

2 files changed

+76
-2
lines changed

src/main/kotlin/org/domaframework/doma/intellij/inspection/dao/processor/paramtype/BatchParamTypeCheckProcessor.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,6 @@ class BatchParamTypeCheckProcessor(
8686

8787
val iterableClassType = param.type as? PsiClassType
8888
iterableClassType?.parameters?.firstOrNull()?.let { iterableParam ->
89-
// Check if @Sql annotation is present or sqlFile=true
9089
if (psiDaoMethod.useSqlAnnotation() || psiDaoMethod.sqlFileOption) {
9190
if (!TypeUtil.isEntity(iterableParam, project) &&
9291
!TypeUtil.isDomain(iterableParam, project) &&
@@ -95,7 +94,6 @@ class BatchParamTypeCheckProcessor(
9594
resultParamType.highlightElement(holder)
9695
}
9796
} else {
98-
// When @Sql annotation is present or sqlFile=true, only Entity types are allowed
9997
if (!TypeUtil.isEntity(iterableParam, project)) {
10098
resultParamType.highlightElement(holder)
10199
}
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
package doma.example.dao.inspection.paramtype;
2+
3+
import org.seasar.doma.*;
4+
import doma.example.domain.Salary;
5+
import org.seasar.doma.jdbc.Reference;
6+
import org.seasar.doma.jdbc.Result;
7+
8+
import java.util.List;
9+
import java.util.Optional;
10+
11+
@Dao
12+
public interface DataTypeParamTypeTestDao {
13+
14+
@Select
15+
@Sql("select * from salary where id = /*salary.value*/0")
16+
Salary selectSalary(Salary salary);
17+
18+
@Select
19+
@Sql("select * from salary where id = /*salary.value*/0")
20+
Optional<Salary> selectOptSalary(Salary salary);
21+
22+
@Update
23+
int updateSalary(Salary <error descr="The parameter type must be an entity">salary</error>);
24+
25+
@Insert
26+
int insertSalary(Salary <error descr="The parameter type must be an entity">salary</error>);
27+
28+
@Delete
29+
int deleteSalary(Salary <error descr="The parameter type must be an entity">salary</error>);
30+
31+
@BatchUpdate
32+
int[] batchUpdateSalary(List<Salary> <error descr="The argument must be an Iterable subclass that has an Entity class as a parameter">salary</error>);
33+
34+
@BatchUpdate
35+
int[] batchInsertSalary(List<Salary> <error descr="The argument must be an Iterable subclass that has an Entity class as a parameter">salary</error>);
36+
37+
@BatchUpdate
38+
int[] batchDeleteSalary(List<Salary> <error descr="The argument must be an Iterable subclass that has an Entity class as a parameter">salary</error>);
39+
40+
@Update
41+
@Sql("UPDATE salary SET val = /*salary.value*/0")
42+
int updateSalaryWithSql(Salary salary);
43+
44+
@Insert
45+
@Sql("INSERT INTO salary (val) VALUES (/*salary.value*/0)")
46+
int insertSalaryWithSql(Salary salary);
47+
48+
@Delete
49+
@Sql("DELETE FROM salary WHERE val = /*salary.value*/0 ")
50+
int deleteSalaryWithSql(Salary salary);
51+
52+
@BatchUpdate
53+
@Sql("UPDATE salary SET val = /*salary.value*/0")
54+
int[] batchUpdateSalaryWithSql(List<Salary> salary);
55+
56+
@BatchUpdate
57+
@Sql("INSERT INTO salary (val) VALUES (/*salary.value*/0)")
58+
int[] batchInsertSalaryWithSql(List<Salary> salary);
59+
60+
@BatchUpdate
61+
@Sql("DELETE FROM salary WHERE val = /*salary.value*/0 ")
62+
int[] batchDeleteSalaryWithSql(List<Salary> salary);
63+
64+
@Function
65+
List<Salary> getTopSalaries(@In Salary limit);
66+
67+
@Function
68+
Optional<Salary> getMaxSalary(@InOut Reference<Salary> percentage, @ResultSet List<Salary> resultSet);
69+
70+
@Procedure
71+
void computeBonus(@In Salary employeeId);
72+
73+
@Procedure
74+
void adjustSalaries(@InOut Reference<Salary> percentage, @ResultSet List<Salary> resultSet);
75+
76+
}

0 commit comments

Comments
 (0)