java - ActiveJDBC 从多个表中选择

标签 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);

最佳答案

首先,您显然具有一对多关联,因此您不需要使用 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(..)

希望这会有所帮助!

关于java - ActiveJDBC 从多个表中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26497283/

相关文章:

java - 如何使用 Camel 创建和发布 WebService?

java - MultiPartEntity 以及 android 中的纯文本

java - Gradle:如何在编译后但在将文件打包到 Jar 中之前添加自定义任务?

java - VSCode 中的自动 ActiveJDBC 检测

java - java中的正则表达式

java - 遗留代码中捕获和忽略的异常

java - 使用 IntelliJ IDEA 调试 ActiveJDBC

java - 是否可以使用 Activejdbc 和 Maven 进行仪器模块项目?

java - ActiveJDBC 在 findFirst 时无法确定模型类名称,但在插入时无法确定

java - 单例类识别