質問編集履歴

7

タグ追加

2020/08/05 04:12

投稿

waito
waito

スコア23

test CHANGED
File without changes
test CHANGED
File without changes

6

Claimテーブルの子孫テーブルも全て2倍になっていることを追記

2020/08/05 04:12

投稿

waito
waito

スコア23

test CHANGED
File without changes
test CHANGED
@@ -76,6 +76,12 @@
76
76
 
77
77
 
78
78
 
79
+ また、Claimテーブルだけでなく、その子孫テーブル全てのレコードが2倍になっています。
80
+
81
+ 全て、Claimテーブルと同じく主キー以外同じレコードが2件ずつあります。
82
+
83
+
84
+
79
85
  単一テーブルに対して動的クエリで検索した場合は、
80
86
 
81
87
  正しく検索出来たので、結合されたテーブルに対して処理したことが原因だと思っています。

5

補足追加

2020/08/05 02:11

投稿

waito
waito

スコア23

test CHANGED
File without changes
test CHANGED
@@ -590,7 +590,7 @@
590
590
 
591
591
 
592
592
 
593
- #### 実行されたSQL
593
+ #### JPAで実行されたSQL
594
594
 
595
595
  SQLはSELECT文しか実行されていません。
596
596
 
@@ -713,3 +713,13 @@
713
713
  }
714
714
 
715
715
  ```
716
+
717
+
718
+
719
+ また、関係ないと思いますが、
720
+
721
+ エンティティクラスでfetch = FetchType.LAZYとすると、
722
+
723
+ 検索時にLazyInitializationExceptionが発生します。
724
+
725
+ 本題とはずれますが、これについてもご存じの方がいれば教えて下さい。

4

テストデータ追加

2020/08/05 02:01

投稿

waito
waito

スコア23

test CHANGED
File without changes
test CHANGED
@@ -368,7 +368,7 @@
368
368
 
369
369
 
370
370
 
371
- サービスクラス
371
+ #### サービスクラス
372
372
 
373
373
  ```Java
374
374
 
@@ -516,6 +516,78 @@
516
516
 
517
517
  ```
518
518
 
519
+ #### テストデータ(scripts = "classpath:/sql/data.sql")
520
+
521
+ ```sql
522
+
523
+ INSERT INTO CLAIM
524
+
525
+ (CLAIM_NUMBER, INSURED_NAME, CONTRACTOR_NAME, DEPARTMENT_IN_CHARGE, BASE_IN_CHARGE, INSURANCE_TYPE, UPDATE_DATE, ACCIDENT_DATE)
526
+
527
+ VALUES
528
+
529
+ ('12345678910', '鈴木一郎', '山田次郎', '第一部署', '東京本社', 'スポ協', '2020-07-25T12:00:00.000Z', '2020-07-25T12:00:00.000Z');
530
+
531
+ INSERT INTO FRAUD_SCORE_HISTORY
532
+
533
+ (SCORING_DATE, CLAIM_CATEGORY, CLAIM_ID)
534
+
535
+ VALUES
536
+
537
+ ('2020-06-25T12:00:00.000Z', '低', 1),
538
+
539
+ ('2020-07-25T12:00:00.000Z', '中', 1);
540
+
541
+
542
+
543
+ INSERT INTO FRAUD_SCORE_DETAILS
544
+
545
+ (MODEL_CATEGORY_NAME, RANK, SCORE, FRAUD_SCORE_HISTORY_ID)
546
+
547
+ VALUES
548
+
549
+ ('特殊事案モデル', 'Low', 30, 1),
550
+
551
+ ('NC/PDモデル', 'Low', 30, 1),
552
+
553
+ ('特殊事案モデル', 'Middle', 50, 2),
554
+
555
+ ('NC/PDモデル', 'Middle', 50, 2);
556
+
557
+
558
+
559
+ INSERT INTO REASONS
560
+
561
+ (RANK, SCORE, DESCRIPTION, FEATURE_DESCRIPTION, FRAUD_SCORE_DETAIL_ID)
562
+
563
+ VALUES
564
+
565
+ ('High', 50, '特徴量1', '特徴量1の説明', 1),
566
+
567
+ ('Middle', 10, '特徴量2', '特徴量2の説明', 1),
568
+
569
+ ('Low', -30, '特徴量3', '特徴量3の説明', 1),
570
+
571
+ ('High', 50, '特徴量1', '特徴量1の説明', 2),
572
+
573
+ ('Middle', 10, '特徴量2', '特徴量2の説明', 2),
574
+
575
+ ('Low', -30, '特徴量3', '特徴量3の説明', 2),
576
+
577
+ ('High', 70, '特徴量1', '特徴量1の説明', 3),
578
+
579
+ ('Middle', 10, '特徴量2', '特徴量2の説明', 3),
580
+
581
+ ('Low', -30, '特徴量3', '特徴量3の説明', 3),
582
+
583
+ ('High', 70, '特徴量1', '特徴量1の説明', 4),
584
+
585
+ ('Middle', 10, '特徴量2', '特徴量2の説明', 4),
586
+
587
+ ('Low', -30, '特徴量3', '特徴量3の説明', 4);
588
+
589
+ ```
590
+
519
591
 
520
592
 
521
593
  #### 実行されたSQL

3

ログについて修正

2020/08/05 01:42

投稿

waito
waito

スコア23

test CHANGED
File without changes
test CHANGED
@@ -518,13 +518,7 @@
518
518
 
519
519
 
520
520
 
521
- #### 実行時のログ・実行したSQL
521
+ #### 実行されたSQL
522
-
523
- 量が多すぎてペースト出来ませんでした。
524
-
525
- 必要でしたらGitHubなどに上げます。
526
-
527
-
528
522
 
529
523
  SQLはSELECT文しか実行されていません。
530
524
 
@@ -536,6 +530,12 @@
536
530
 
537
531
 
538
532
 
533
+ 全量はGitHubに上げました。
534
+
535
+ [実行されたSQL](https://github.com/uekiGityuto/log)
536
+
537
+
538
+
539
539
  #### その他試したこと
540
540
 
541
541
  動的クエリの作成方法が悪いのかと思い、以下を参考に他の方法でも試しました。

2

ログについて修正

2020/08/04 20:50

投稿

waito
waito

スコア23

test CHANGED
File without changes
test CHANGED
@@ -518,9 +518,21 @@
518
518
 
519
519
 
520
520
 
521
- #### 実行時のログ
521
+ #### 実行時のログ・実行したSQL
522
+
522
-
523
+ 量が多すぎてペースト出来ませんでした。
524
+
523
- 文字数オーバーしたので補足書きます。
525
+ 必要でしたらGitHubなど上げます。
526
+
527
+
528
+
529
+ SQLはSELECT文しか実行されていません。
530
+
531
+ SQLの実行文字数は1回目よりも2回目の方が2倍以上多くなっています。
532
+
533
+ 1回目のメソッド実行時は600文字程度。
534
+
535
+ 2回目のメソッド実行時は1800文字程度。
524
536
 
525
537
 
526
538
 

1

誤字修正

2020/08/04 20:41

投稿

waito
waito

スコア23

test CHANGED
File without changes
test CHANGED
@@ -62,7 +62,7 @@
62
62
 
63
63
  また、同一メソッド内で2回検索処理をすると、2回とも1レコードだけ取得出来ます。
64
64
 
65
- さらに、1回目のメソッド終了後も増えていません。
65
+ さらに、1回目のメソッド終了後も増えません。
66
66
 
67
67
  (1メソッド実行後にDBを直接見ると1レコードしかありませんでした)
68
68
 
@@ -88,9 +88,9 @@
88
88
 
89
89
  # コード
90
90
 
91
- import文は省略します。
91
+ 量が多いので一部省略します。
92
-
92
+
93
- なお、動的クエリは以下を参考に実装してい
93
+ なお、動的クエリは以下を参考に実装しました
94
94
 
95
95
  [[JPA] DB検索時の条件を動的に設定する](https://qiita.com/ksh-fthr/items/44ecc0550a77f4280ea7)
96
96