2017-06-16 5 views
0

私は、DBを照会するには、以下の行を使用しています:javaliteを使用してデータベースからレコードを返す方法は?

List<PostsCategories> postsCategories = PostsCategories.findBySQL("select category from posts_categories"); 

を代わりにのみ[{category=Miscellaneous},....]それが返されて、余分な情報などModel, table, attributes内部の配列を返します。

私はなぜactivejdbcでこのように動作するのか分かりませんか?

[Model: com.ngo.org10s.models.PostsCategories, table: 'posts_categories', attributes: {category=Miscellaneous}] 

単純に必要な値を返しますか?

+0

私はあなたが実際にJavaliteのActiveJDBCフレームワークを使用していて、実際に簡単な例[ここ](HTTPしようとしていると仮定します// javaliteを。 io/activejdbc)。 – DevilsHnd

+0

@DevilsHndうん、やった – kittu

答えて

1

これは、ActiveJDBCがORM ==オブジェクト・リレーショナル・マッピングであるためです。つまり、モデルインスタンスには、テーブル内の単一の行を表すすべての属性が含まれています。

状態のJavaDoc有するfindBySQL方法:得られたモデルは、換言すれば正しく

自身を水和することができるように場合

は、クエリがこのモデルに関連すべての列を返すことを確認しPostsCategoriesのインスタンスには1つの属性が設定されていますが、これはORMではありません。

あなただけの属性を1つ取得を主張する場合は、org.javalite.activejdbc.Baseを使用します。

List<Map> categories = Base.findAll("select category from posts_categories"); 
関連する問題