我正在使用ORMLite并且我有这些模型(我省略了id字段和可见性的可见性):
class Book {
String title;
List<Author> authors;
}
class Author {
String name;
List<Book> books;
}
class BookAuthor {
@DatabaseField(foreign = true)
Author author;
@DatabaseField(foreign = true)
Book book;
}
我想要查询所有书籍order_by title以及他们的作者在他们的列表中,所以我有这样的方法,第一个解决多对多,然后让书籍缩短:
private PreparedQuery<Author> makeAuthorsForBookQuery() throws SQLException {
QueryBuilder<BookAuthor, Integer> bookAuthorQb = bookAuthorDao.queryBuilder();
bookAuthorQb.selectColumns("author");
SelectArg userSelectArg = new SelectArg();
bookAuthorQb.where().eq("", userSelectArg);
QueryBuilder<Author, String> authorQb = authorDao.queryBuilder();
authorQb.where().in("name", bookAuthorQb);
return authorQb.prepare();
}
private PreparedQuery<Book> makeBooksQuery() throws SQLException {
QueryBuilder<Book,Integer> bookQb = bookDao.queryBuilder();
bookDao.orderBy(Manga.TITLE_COLUMN_NAME, true);
return bookDao.prepare();
但如果我这样做,那么我必须迭代每本书并激活AutorsForBookQuery并将结果分配给图书清单。
我的问题是:是否存在任何其他方式来获取此?我的意思是,做一个内部联接的东西,在书中自动映射作者并将其保存为PreparedQuery?
PD:我的目标是在CloseableIterator中加载这个准备好的查询
答案 0 :(得分:0)
我希望查询所有书籍order_by title以及他们的作者列表...
我会做什么@Fran是做2个查询。一个按标题排序的Book
。然后,作者的另一个查询与BookAuthor
类一起使用book.id加入到您所获得的书籍列表中。所以它是2个查询,但它不是Book
的另一个查询。
ORMLite肯定没有帮助你。