【发布时间】:2018-12-11 14:31:13
【问题描述】:
我有两个 mysql 表:Owners & Pets
业主案例类:
Owner(id: Int, name: String, age: Int)
宠物箱类:
Pet(id: Int, ownerId: Int, type: String, name: String)
我想从这些表中创建 OwnerAndPets 列表:
case class OwnerAndPets(ownerId: Int,
name: String,
age: String,
pets: List[Pet])
(出于迁移目的,我想将这些表移动为 mongodb 的集合,集合文档将是 OwnerAndPets 对象)
我有两个问题:
-
当我在 Owner & Pet 上使用带有 quill 的 join 时,我得到了元组列表
[(Owner, Pet)]如果我的主人的宠物很少,我会得到:[(Owner(1, "john", 30), Pet(3,1,"dog","max")), (Owner(1, "john", 30), Pet(4,1,"cat","snow"))]我需要
(Owner(1, "john", 30), [Pet(3,1,"dog","max"), Pet(4,1,"cat","snow")])我怎样才能做到这样?
-
当我在 Owner & Pet 上使用带有 quill 的 join 时,我不会得到没有宠物的所有者,这很好,因为这是它应该是的,但在我的脚本中,在这种情况下,我想创建如下对象:
OwnerAndPets(Owner(2, "mark", 30), List[])
不胜感激,谢谢
这是我的连接查询:
query[Owner].join(query[Pet]).on((o, p) => o.id == p.o_id)
【问题讨论】:
标签: mysql scala quill quill.io