質問編集履歴

3

追記

2020/07/25 13:36

投稿

norun07
norun07

スコア8

test CHANGED
File without changes
test CHANGED
@@ -53,13 +53,3 @@
53
53
 
54
54
 
55
55
  ### 試したこと
56
-
57
-
58
-
59
-
60
-
61
- Scalaの知識がお有りの方がおられましたら
62
-
63
- 何卒お力添え願います。
64
-
65
- よろしくお願いいたします。

2

誤字

2020/07/25 13:36

投稿

norun07
norun07

スコア8

test CHANGED
File without changes
test CHANGED
@@ -8,35 +8,7 @@
8
8
 
9
9
  ```scala
10
10
 
11
- def findAllPost(
12
11
 
13
- implicit session: DBSession = autoSession): Seq[(Post, Seq[Comment])] = {
14
-
15
- withSQL[Post] {
16
-
17
- select
18
-
19
- .from(Post.as(p))
20
-
21
- .leftJoin(Comment.as(c))
22
-
23
- .on(p.id, c.parent_post_id)
24
-
25
- }.one(Post(p.resultName))
26
-
27
- .toMany(
28
-
29
- rs => rs.stringOpt(c.resultName.parent_post_id).map(_ => Comment(c)(rs)),
30
-
31
- )
32
-
33
- .map((post, comments) => (post, comments))
34
-
35
- .list()
36
-
37
- .apply()
38
-
39
- }
40
12
 
41
13
  ```
42
14
 
@@ -82,111 +54,7 @@
82
54
 
83
55
  ### 試したこと
84
56
 
85
- Commentケースクラスは定義済みで同じケースクラスを使用すると差異が出ないのでCommentケースクラスと同じ構造のnestCommentケースクラスを以下のように定義しました。
86
57
 
87
- ```scala
88
-
89
- case class nestComment(
90
-
91
- id: String = UUID.randomUUID.toString,
92
-
93
- user_id: String,
94
-
95
- text: String,
96
-
97
- parent_post_id: String,
98
-
99
- comment_count: Int,
100
-
101
- posted_at: Date
102
-
103
- )
104
-
105
-
106
-
107
- object nestComment extends SQLSyntaxSupport[nestComment] {
108
-
109
-
110
-
111
- def apply(nc: ResultName[nestComment])(rs: WrappedResultSet): nestComment = new nestComment(
112
-
113
- id = rs.string(nc.id),
114
-
115
- user_id = rs.string(nc.user_id),
116
-
117
- text = rs.string(nc.text),
118
-
119
- parent_post_id = rs.string(nc.parent_post_id),
120
-
121
- comment_count = rs.int(nc.comment_count),
122
-
123
- posted_at = rs.date(nc.posted_at)
124
-
125
- )
126
-
127
- def apply(nc: SyntaxProvider[nestComment])(rs: WrappedResultSet): nestComment =
128
-
129
- apply(nc.resultName)(rs)
130
-
131
-
132
-
133
- var nc = nestComment.syntax("nc")
134
-
135
- }
136
-
137
- ```
138
-
139
-
140
-
141
- そしてこのようにtoManiesを使用して紐付けましたがnestCommentにはコラムが無いとエラーが出てしまします。
142
-
143
- ```scala
144
-
145
- def findAllPost(
146
-
147
- implicit session: DBSession = autoSession): Seq[(Post, Seq[Comment], Seq[nestComment])] = {
148
-
149
- withSQL[Post] {
150
-
151
- select
152
-
153
- .from(Post.as(p))
154
-
155
- .leftJoin(Comment.as(c))
156
-
157
- .on(p.id, c.parent_post_id)
158
-
159
- .leftJoin(nestComment.as(nc))
160
-
161
- .on(p.id, nc.parent_post_id)
162
-
163
- }.one(Post(p.resultName))
164
-
165
- .toManies(
166
-
167
- rs => rs.stringOpt(c.resultName.parent_post_id).map(_ => Comment(c)(rs)),
168
-
169
- rs => rs.stringOpt(nc.resultName.parent_post_id).map(_ => nestComment(nc)(rs)),
170
-
171
- )
172
-
173
- .map((post, comments, nestcomments) => (post, comments, nestcomments))
174
-
175
- .list()
176
-
177
- .apply()
178
-
179
- }
180
-
181
- ```
182
-
183
- ```Error
184
-
185
- IllegalStateException: No column found for nest_comment. If you use NamedDB, you must override connectionPoolName.
186
-
187
-
188
-
189
- ```
190
58
 
191
59
 
192
60
 

1

追記

2020/07/25 13:36

投稿

norun07
norun07

スコア8

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,4 @@
1
- **実現したいこと**
1
+ ### 実現したいこと
2
2
 
3
3
  Postに紐づいたComment、そしてそのCommentに紐づいたCommentを一覧でデータベースから抽出したいのですが、同じテーブルの関係をどのようにOne-to-Maniesで記述するのかが分かりません。
4
4
 
@@ -80,7 +80,7 @@
80
80
 
81
81
 
82
82
 
83
- **試したこと**
83
+ ### 試したこと
84
84
 
85
85
  Commentケースクラスは定義済みで同じケースクラスを使用すると差異が出ないのでCommentケースクラスと同じ構造のnestCommentケースクラスを以下のように定義しました。
86
86