Вопрос такой как правильно выполнить join запрос и конвертировать все это дело в пригодные для retrofit данные?
Конкретно такой вопрос уже задавали на
гитхабе, вот пример кода:
List<Foo> foo = new Select()
.from(Foo.class)
.innerJoin(Bar.class)
.on("Foo.Id=Bar.Id")
.execute();
Результат можно сериализовать с помощью gson и отправлять на retrofit.
Так же еще вопрос когда стоит использовать такие библиотеки как ActiveAndroid?
На мой взгляд, предпочтительнее пользоваться ORM, если не требуются особенно сложные запросы (например объединение нескольких таблиц и сортировка нестандартным образом). На данный момент уже существует множество зрелых решений и ActiveAndroid довольно неплохой выбор.
Удачи!