0

複数のテーブルから選択し、その結果を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);
4

1 に答える 1

2

まず、明らかに 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);

あるいは、同じものを 1 行で書くこともできます。

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

もちろん、これによりすべての著者とその本がメモリにロードされます。Author.findAll()Author.where(..)適切な基準に置き換えることができます。

これが役立つことを願っています!

于 2014-10-22T02:12:26.023 に答える