質問編集履歴

2

内容変更

2020/06/20 02:04

投稿

box_908
box_908

スコア5

test CHANGED
File without changes
test CHANGED
@@ -4,13 +4,47 @@
4
4
 
5
5
  2つのEntityを「@ManyToMany」の関連を持たせたい。
6
6
 
7
+
8
+
9
+ それぞれ、「type」というフィールドを持つ。
10
+
11
+ この「type」を関連付けさせたいです。
12
+
13
+
14
+
15
+ コンソールの結果を見るに、
16
+
17
+ 「on sansho0_.btn_id=kmks1_.sanshos_btn_id 」が余計です。
18
+
19
+
20
+
21
+ #####「sansho0_.type=kmks1_.sanshos_type」だけでJOINしたいのです。
22
+
23
+
24
+
7
- しかし、下記の記載方法ではだめだったので、正しい記載方法をご教示お願い致します。
25
+ 正しい記載方法をご教示お願い致します。
8
-
9
-
10
-
26
+
27
+
28
+
11
- ##エラー内容
29
+ ##コンソ内容
30
+
12
-
31
+ select
32
+
33
+ distinct sansho0_.btn_id as btn_id1_2_,
34
+
35
+ sansho0_.type as type2_2_
36
+
37
+ from
38
+
39
+ sansho sansho0_
40
+
41
+ inner join
42
+
43
+ kmk kmks1_
44
+
13
- org.hibernate.AnnotationException: A Foreign key refering todo.entity.Kmk from todo.entity.Sansho has the wrong number of column. should be 2
45
+ on sansho0_.btn_id=kmks1_.sanshos_btn_id
46
+
47
+ and sansho0_.type=kmks1_.sanshos_type
14
48
 
15
49
 
16
50
 
@@ -22,9 +56,7 @@
22
56
 
23
57
 
24
58
 
25
- それぞれ、「type」というフィールドを持つ。
59
+
26
-
27
- この「type」を関連付けさせたいです。
28
60
 
29
61
 
30
62
 
@@ -68,6 +100,8 @@
68
100
 
69
101
 
70
102
 
103
+
104
+
71
105
  @ManyToMany(mappedBy = "sanshos")
72
106
 
73
107
  private List<Kmk> kmks;
@@ -114,11 +148,15 @@
114
148
 
115
149
  }
116
150
 
151
+
152
+
153
+ public Kmk() {}
154
+
155
+
156
+
117
- @ManyToMany
157
+ @ManyToMany
118
-
119
- @JoinTable(name = "kmk_project",
158
+
120
-
121
- joinColumns = @JoinColumn(name = "type"), inverseJoinColumns = {@JoinColumn(name = "type" ,insertable=false, updatable=false)})
159
+ @JoinColumn(name = "type", insertable = false, updatable = false)
122
160
 
123
161
  private List<Sansho> sanshos;
124
162
 
@@ -205,3 +243,27 @@
205
243
 
206
244
 
207
245
  ```
246
+
247
+
248
+
249
+ #Repositoryクラス
250
+
251
+
252
+
253
+ ```java
254
+
255
+ @Repository
256
+
257
+ public interface SanshoRepository extends JpaRepository<Sansho, String> {
258
+
259
+
260
+
261
+ @Query("SELECT DISTINCT s FROM Sansho s INNER JOIN s.kmks ")
262
+
263
+ List<Sansho> findGet();
264
+
265
+ }
266
+
267
+
268
+
269
+ ```

1

エラー内容を追記

2020/06/20 02:04

投稿

box_908
box_908

スコア5

test CHANGED
File without changes
test CHANGED
@@ -8,6 +8,12 @@
8
8
 
9
9
 
10
10
 
11
+ ##エラー内容
12
+
13
+ org.hibernate.AnnotationException: A Foreign key refering todo.entity.Kmk from todo.entity.Sansho has the wrong number of column. should be 2
14
+
15
+
16
+
11
17
  ### Entityクラス
12
18
 
13
19
  ・Sansho.java