У меня есть две таблицы mysql: Владельцы и домашние животные
Класс дела владельца:
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)
Iу меня есть две проблемы:
, когда я использую соединение с иглой на Владелец и домашнее животное, я получаю список кортежей [(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")])
как мне сделать это так?
когда я использую соединение сquill on Owner & Pet Я не получу владельцев, у которых нет домашних животных, и это хорошо, потому что это то, чем он должен быть, но в моем сценарии в этом случае я хотел бы создать объект, подобный:
OwnerAndPets(Owner(2, "mark", 30), List[])
Буду признателен за любую помощь, спасибо
это мой запрос на присоединение:
query[Owner].join(query[Pet]).on((o, p) => o.id == p.o_id)