質問編集履歴

6

2019/05/07 13:09

投稿

lupus_dingo
lupus_dingo

スコア257

test CHANGED
File without changes
test CHANGED
@@ -20,9 +20,39 @@
20
20
 
21
21
  ```java
22
22
 
23
+ // 変換前のイメージ
24
+
25
+ class BeforeParent {
26
+
27
+ private Parent parent;
28
+
29
+ private ChildA childA; // 中身はBと同様
30
+
31
+ }
32
+
33
+ class childB {
34
+
35
+ private Integer pk1; // parentのpk
36
+
37
+ private String pk2; // parentのpk
38
+
39
+ private String pk3;
40
+
41
+ private String data1;
42
+
43
+ private String data2;
44
+
45
+ }
46
+
47
+ ```
48
+
49
+
50
+
51
+ ```java
52
+
23
53
  // 変換後のイメージ
24
54
 
25
- class Vo {
55
+ class After {
26
56
 
27
57
  private Parent parent;
28
58
 

5

2019/05/07 13:09

投稿

lupus_dingo
lupus_dingo

スコア257

test CHANGED
File without changes
test CHANGED
@@ -47,3 +47,15 @@
47
47
  M:Nのデータを結合して一括抽出した後で、M:Oとなるデータを同様に抽出し、
48
48
 
49
49
  Mごとにループ処理を行うということです。
50
+
51
+
52
+
53
+ 追記
54
+
55
+ 抽出したデータを編集することはありません(→イミュータブル?)。
56
+
57
+ equalsはオーバーライドせずに、parentが持つ複合キー(全て基本型)それぞれに対してforループ内でequalsチェックする想定でした。
58
+
59
+
60
+
61
+ →ふと、思いましたが、equalsをオンバーライドすれば上記のstreamで行けそう?(^^;

4

2019/05/07 12:55

投稿

lupus_dingo
lupus_dingo

スコア257

test CHANGED
File without changes
test CHANGED
@@ -24,9 +24,7 @@
24
24
 
25
25
  class Vo {
26
26
 
27
- private Parent
27
+ private Parent parent;
28
-
29
- parent;
30
28
 
31
29
  private List<ChildA> childA;
32
30
 

3

2019/05/07 12:16

投稿

lupus_dingo
lupus_dingo

スコア257

test CHANGED
File without changes
test CHANGED
@@ -24,11 +24,13 @@
24
24
 
25
25
  class Vo {
26
26
 
27
- private Parent;
27
+ private Parent
28
28
 
29
- private List<ChildA>;
29
+ parent;
30
30
 
31
+ private List<ChildA> childA;
32
+
31
- private List<ChildB>;
33
+ private List<ChildB> childB;
32
34
 
33
35
  }
34
36
 

2

2019/05/07 12:15

投稿

lupus_dingo
lupus_dingo

スコア257

test CHANGED
File without changes
test CHANGED
@@ -18,6 +18,26 @@
18
18
 
19
19
 
20
20
 
21
+ ```java
22
+
23
+ // 変換後のイメージ
24
+
25
+ class Vo {
26
+
27
+ private Parent;
28
+
29
+ private List<ChildA>;
30
+
31
+ private List<ChildB>;
32
+
33
+ }
34
+
35
+
36
+
37
+ ```
38
+
39
+
40
+
21
41
  上記のとおり、java8が使用可能です。
22
42
 
23
43
 

1

2019/05/07 12:14

投稿

lupus_dingo
lupus_dingo

スコア257

test CHANGED
File without changes
test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  ```java
8
8
 
9
- Map<String, List<ChildA>>map=list.stream().collect(Collectors.groupby(ObjA::getId));
9
+ Map<String, List<ChildA>>map=list.stream().collect(Collectors.groupby(ChildA::getId));
10
10
 
11
11
  ```
12
12
 
@@ -26,4 +26,4 @@
26
26
 
27
27
  M:Nのデータを結合して一括抽出した後で、M:Oとなるデータを同様に抽出し、
28
28
 
29
- Mごとにループ処理を行いたいです。
29
+ Mごとにループ処理を行うとうことです。