Skip to content

Commit 3ee82bc

Browse files
authored
Update orm.html.md.erb
1 parent da2a83a commit 3ee82bc

File tree

1 file changed

+14
-13
lines changed

1 file changed

+14
-13
lines changed

source/documentation/orm.html.md.erb

+14-13
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,7 @@ import scalikejdbc.orm.*
311311
case class Member(
312312
id: Long,
313313
name: String,
314-
skills: Optional[Skill],
314+
skills: Seq[Skill] = Nil,
315315
)
316316
object Member extends CRUDMapper[Member] {
317317
override val defaultAlias = createAlias("m")
@@ -324,15 +324,16 @@ object Member extends CRUDMapper[Member] {
324324
)
325325
}
326326

327-
case class MemberSkill(memberId: Long, skillId: Long)
328-
object MemberSkill extends JoinTable[MemberSkill] {
329-
override val defaultAlias = createAlias("ms")
330-
}
331327
case class Skill(id: Long, name: String)
332328
object Skill extends CRUDMapper[Skill] {
333329
override val defaultAlias = createAlias("s")
334330
override def extract(rs: WrappedResultSet, s: ResultName[Skill]): Skill = autoConstruct(rs, s)
335331
}
332+
333+
case class MemberSkill(memberId: Long, skillId: Long)
334+
object MemberSkill extends JoinTable[MemberSkill] {
335+
override val defaultAlias = createAlias("ms")
336+
}
336337
```
337338

338339
Here is a code snippet demonstrating how to perform join queries:
@@ -351,7 +352,6 @@ When enabling eager loading via the `includes` API, it's necessary to define bot
351352

352353
```scala
353354
object Member extends SkinnyCRUDMapper[Member] {
354-
355355
// Unfortunately, in Scala 2.10.x, the combination of Scala macros and type-dynamic may not always behave as expected, particularly when defining "val company".
356356
// If you encounter this issue, consider using alternatives such as "val companyOpt", "companyRef", and so on.
357357
lazy val companyOpt = {
@@ -360,9 +360,7 @@ object Member extends SkinnyCRUDMapper[Member] {
360360
// Then attach includes following the claim API call
361361
.includes[Company](
362362
merge = (members, companies) => members.map { m =>
363-
companies.find(c => m.company.exists(_.id == c.id))
364-
.map(c => m.copy(company = Some(c)))
365-
.getOrElse(m)
363+
companies.find(c => m.company.exists(_.id == c.id)).map(c => m.copy(company = Some(c))).getOrElse(m)
366364
})
367365
}
368366
}
@@ -380,10 +378,13 @@ Here is another example with `hasManyThrough`:
380378
object Member extends SkinnyCRUDMapper[Member] {
381379
lazy val skills =
382380
hasManyThrough[Skill](
383-
MemberSkill, Skill, (m, skills) => m.copy(skills = skills)
384-
).includes[Skill]((ms, skills) => ms.map { m =>
385-
m.copy(skills = skills.filter(_.memberId.exists(_ == m.id)))
386-
})
381+
MemberSkill,
382+
Skill,
383+
(m, skills) => m.copy(skills = skills)
384+
)
385+
.includes[Skill](
386+
(ms, skills) => ms.map { m => m.copy(skills = skills.filter(_.memberId.exists(_ == m.id))) }
387+
)
387388
}
388389

389390
Member.includes(Member.skills).findById(123) // with skills

0 commit comments

Comments
 (0)