質問編集履歴
3
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -25,9 +25,4 @@
|
|
25
25
|
Postを親にした時PostのIDが入ります。
|
26
26
|
また、Commentを親にした時には(Commentにコメントする)、その親CommentのIDが入ります。
|
27
27
|
|
28
|
-
### 試したこと
|
28
|
+
### 試したこと
|
29
|
-
|
30
|
-
|
31
|
-
Scalaの知識がお有りの方がおられましたら
|
32
|
-
何卒お力添え願います。
|
33
|
-
よろしくお願いいたします。
|
2
誤字
title
CHANGED
File without changes
|
body
CHANGED
@@ -3,21 +3,7 @@
|
|
3
3
|
|
4
4
|
今のところPostに紐づいたCommentは取得できる状態でソースコードは以下のようになります(CommentのCommentは取得できない)。
|
5
5
|
```scala
|
6
|
-
|
6
|
+
|
7
|
-
implicit session: DBSession = autoSession): Seq[(Post, Seq[Comment])] = {
|
8
|
-
withSQL[Post] {
|
9
|
-
select
|
10
|
-
.from(Post.as(p))
|
11
|
-
.leftJoin(Comment.as(c))
|
12
|
-
.on(p.id, c.parent_post_id)
|
13
|
-
}.one(Post(p.resultName))
|
14
|
-
.toMany(
|
15
|
-
rs => rs.stringOpt(c.resultName.parent_post_id).map(_ => Comment(c)(rs)),
|
16
|
-
)
|
17
|
-
.map((post, comments) => (post, comments))
|
18
|
-
.list()
|
19
|
-
.apply()
|
20
|
-
}
|
21
7
|
```
|
22
8
|
### テーブルの関係
|
23
9
|
**Post**
|
@@ -40,60 +26,8 @@
|
|
40
26
|
また、Commentを親にした時には(Commentにコメントする)、その親CommentのIDが入ります。
|
41
27
|
|
42
28
|
### 試したこと
|
43
|
-
Commentケースクラスは定義済みで同じケースクラスを使用すると差異が出ないのでCommentケースクラスと同じ構造のnestCommentケースクラスを以下のように定義しました。
|
44
|
-
```scala
|
45
|
-
case class nestComment(
|
46
|
-
id: String = UUID.randomUUID.toString,
|
47
|
-
user_id: String,
|
48
|
-
text: String,
|
49
|
-
parent_post_id: String,
|
50
|
-
comment_count: Int,
|
51
|
-
posted_at: Date
|
52
|
-
)
|
53
29
|
|
54
|
-
object nestComment extends SQLSyntaxSupport[nestComment] {
|
55
30
|
|
56
|
-
def apply(nc: ResultName[nestComment])(rs: WrappedResultSet): nestComment = new nestComment(
|
57
|
-
id = rs.string(nc.id),
|
58
|
-
user_id = rs.string(nc.user_id),
|
59
|
-
text = rs.string(nc.text),
|
60
|
-
parent_post_id = rs.string(nc.parent_post_id),
|
61
|
-
comment_count = rs.int(nc.comment_count),
|
62
|
-
posted_at = rs.date(nc.posted_at)
|
63
|
-
)
|
64
|
-
def apply(nc: SyntaxProvider[nestComment])(rs: WrappedResultSet): nestComment =
|
65
|
-
apply(nc.resultName)(rs)
|
66
|
-
|
67
|
-
var nc = nestComment.syntax("nc")
|
68
|
-
}
|
69
|
-
```
|
70
|
-
|
71
|
-
そしてこのようにtoManiesを使用して紐付けましたがnestCommentにはコラムが無いとエラーが出てしまします。
|
72
|
-
```scala
|
73
|
-
def findAllPost(
|
74
|
-
implicit session: DBSession = autoSession): Seq[(Post, Seq[Comment], Seq[nestComment])] = {
|
75
|
-
withSQL[Post] {
|
76
|
-
select
|
77
|
-
.from(Post.as(p))
|
78
|
-
.leftJoin(Comment.as(c))
|
79
|
-
.on(p.id, c.parent_post_id)
|
80
|
-
.leftJoin(nestComment.as(nc))
|
81
|
-
.on(p.id, nc.parent_post_id)
|
82
|
-
}.one(Post(p.resultName))
|
83
|
-
.toManies(
|
84
|
-
rs => rs.stringOpt(c.resultName.parent_post_id).map(_ => Comment(c)(rs)),
|
85
|
-
rs => rs.stringOpt(nc.resultName.parent_post_id).map(_ => nestComment(nc)(rs)),
|
86
|
-
)
|
87
|
-
.map((post, comments, nestcomments) => (post, comments, nestcomments))
|
88
|
-
.list()
|
89
|
-
.apply()
|
90
|
-
}
|
91
|
-
```
|
92
|
-
```Error
|
93
|
-
IllegalStateException: No column found for nest_comment. If you use NamedDB, you must override connectionPoolName.
|
94
|
-
|
95
|
-
```
|
96
|
-
|
97
31
|
Scalaの知識がお有りの方がおられましたら
|
98
32
|
何卒お力添え願います。
|
99
33
|
よろしくお願いいたします。
|
1
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
### 実現したいこと
|
2
2
|
Postに紐づいたComment、そしてそのCommentに紐づいたCommentを一覧でデータベースから抽出したいのですが、同じテーブルの関係をどのようにOne-to-Maniesで記述するのかが分かりません。
|
3
3
|
|
4
4
|
今のところPostに紐づいたCommentは取得できる状態でソースコードは以下のようになります(CommentのCommentは取得できない)。
|
@@ -39,7 +39,7 @@
|
|
39
39
|
Postを親にした時PostのIDが入ります。
|
40
40
|
また、Commentを親にした時には(Commentにコメントする)、その親CommentのIDが入ります。
|
41
41
|
|
42
|
-
|
42
|
+
### 試したこと
|
43
43
|
Commentケースクラスは定義済みで同じケースクラスを使用すると差異が出ないのでCommentケースクラスと同じ構造のnestCommentケースクラスを以下のように定義しました。
|
44
44
|
```scala
|
45
45
|
case class nestComment(
|