質問編集履歴
5
いらない部分があったので修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -28,14 +28,6 @@
|
|
28
28
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
29
29
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
30
30
|
<mapper namespace="curriculum.mapper.FoodsMapper">
|
31
|
-
<select id="findByTypeAndPriceUsingClass" resultType="curriculum.domain.FoodsParam">
|
32
|
-
Select
|
33
|
-
*
|
34
|
-
From
|
35
|
-
foods
|
36
|
-
Where
|
37
|
-
type = #{type} AND price <![CDATA[ <= ]]> #{price}
|
38
|
-
</select>
|
39
31
|
<select id="findByQuery" resultType="curriculum.domain.FoodsQuery">
|
40
32
|
Select
|
41
33
|
*
|
4
プログラムの追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -17,7 +17,8 @@
|
|
17
17
|
|
18
18
|
@Test
|
19
19
|
void test(){
|
20
|
-
System.out.println(foodsMapper.findByQuery(new FoodsQuery(null, null, "アイス")));
|
20
|
+
System.out.println(foodsMapper.findByQuery(new FoodsQuery(null, null, "アイス"))); //エラー
|
21
|
+
System.out.println(foodsMapper.findByQuery(new FoodsQuery(List.of("氷菓"), null, "アイス"))); //成功する
|
21
22
|
}
|
22
23
|
}
|
23
24
|
```
|
3
sqlの追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -81,4 +81,26 @@
|
|
81
81
|
}
|
82
82
|
}
|
83
83
|
```
|
84
|
+
```psql
|
85
|
+
create table foods
|
86
|
+
(
|
87
|
+
id SERIAL,
|
88
|
+
name text NOT NULL,
|
89
|
+
type text NOT NULL,
|
90
|
+
price integer NOT NULL
|
91
|
+
);
|
84
92
|
|
93
|
+
insert into foods (name, type, price)
|
94
|
+
values ('りんご', '果物', 100),
|
95
|
+
('いちご', '果物', 500),
|
96
|
+
('西瓜', '果物', 2000),
|
97
|
+
('じゃがいも', '野菜', 150),
|
98
|
+
('白菜', '野菜', 300),
|
99
|
+
('かぼちゃ', '野菜', 1000),
|
100
|
+
('チョコレート', '菓子', 200),
|
101
|
+
('バニラアイス', '氷菓', 300),
|
102
|
+
('抹茶アイス', '氷菓', 300),
|
103
|
+
('いちごアイス', '氷菓', 300),
|
104
|
+
('雪見だいふく', '氷菓', 200);
|
105
|
+
```
|
106
|
+
|
2
本文の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
というエラーが出てしまいます。
|
7
7
|
List.ofでfoodsMapper.findByQuery(new FoodsQuery(List.of("野菜"), null, null))のようにnullでない値を入力すると正常に動作します。
|
8
8
|
また、ほかの部分をnullにして、ifで書いた場合も正常に動作します。
|
9
|
-
つまり、Listの部分のみnullのスキップが
|
9
|
+
つまり、Listの部分のみnullのスキップができない状態です。
|
10
10
|
|
11
11
|
説明に不備等ございましたら、コメントお願いいたします。
|
12
12
|
よろしくお願いします。ありがとう
|
1
全てのコードを記載しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -57,3 +57,28 @@
|
|
57
57
|
</select>
|
58
58
|
</mapper>
|
59
59
|
```
|
60
|
+
```java
|
61
|
+
@Mapper
|
62
|
+
public interface FoodsMapper{
|
63
|
+
List<Map<String, Object>> findByQuery(FoodsQuery param);
|
64
|
+
}
|
65
|
+
```
|
66
|
+
```java
|
67
|
+
@Data
|
68
|
+
public class FoodsQuery {
|
69
|
+
@Column(nullable = false)
|
70
|
+
public List<String> types;
|
71
|
+
public Integer limit;
|
72
|
+
public String word;
|
73
|
+
|
74
|
+
public FoodsQuery(){
|
75
|
+
}
|
76
|
+
|
77
|
+
public FoodsQuery(List<String> types, Integer limit, String word) {
|
78
|
+
this.types = types;
|
79
|
+
this.limit = limit;
|
80
|
+
this.word = word;
|
81
|
+
}
|
82
|
+
}
|
83
|
+
```
|
84
|
+
|