ну мне хочется нормальных таблиц, чтоб потом выборку делать из нескольких таблиц. Как мне показалось, в рум больше топят за embedded таблицы, а мне такое не оч нравится. В итоге, конечно, всё можно и в рум сделать так, как хочется, но почему-то кажется, что без него будет проще
Оу. А видел SQL-темплейты в личи?
Допустим, объявляешь воображаемую заджойненную таблицу
val joined = projection(Tuple("u", User, "c", Contact)) { arrayOf(
Relation.Embedded(NestingCase, First)
, Relation.Embedded(NestingCase, Second)
) }
Дальше пишешь запрос и получаешь темплейт:
val userContact = session.query(
"SELECT u.name as 'u.name', u.email as 'u.email'," +
"c.value as 'c.value', c.user_id as 'c.user_id' " +
"FROM users u INNER JOIN contacts c ON u._id = c.user_id WHERE u.name = ? LIMIT 1",
/*where name =*/ string,
/*return*/ struct(joined, BindBy.Name))
вызываешь как обычную функцию:
val contact = userContact("John")
весь пример (с неприглядными фиксами для ошибок выведения типа, у меня пока либа компилится только со станым инференсом).