ActiveJDBC从多个表中选择

时间:2014-10-21 22:13:27

标签: java activejdbc

我想从多个表中进行选择,并使用ActiveJDBC将结果转换为json

http://javalite.io/record_selection

我可以执行以下操作,但它当然只返回模型书中的列,我没有看到作者模型中的列。怎么可能实现这个目标?

LazyList<Book> book = Book.findBySQL("select books.*, authors.* from books, authors where books.author_id = author.id");
jsonOutput = book.toJson(true);

1 个答案:

答案 0 :(得分:1)

首先,您显然拥有一对多关联,因此您无需使用findBySQL()。此方法用于框架无法帮助的情况,但您的情况是标准的。 根据此页面:http://javalite.io/one_to_many_associations以及此页:http://javalite.io/generation_of_json 你需要写这样的东西:

LazyList<Author> authors = Author.findAll().include(Book.class);
String json = authors.toJson(true);

或者你可以在同一行写下相同的内容:

String json = Author.findAll().include(Book.class).toJson(true);

当然,这会将所有作者及其书籍加载到内存中。您可能希望将Author.findAll()替换为Author.where(..),并使用适当的标准。

我希望这有帮助!