8

さて、私はすべてのエンティティを選択しようとしていますentitie_id = *some id*

私はこのルールでこれを行います:

List<NodeSugar> nodesugars = NodeSugar.find(NodeSugar.class, "entitie_id = ? ", String.valueOf(nodeid));

私はいくつかの結果を返さなければならないことを知っていますが、エラーが発生します。このエラー:

E/SQLiteLog﹕ (1) no such column: entitie_id

コードの別の部分で設定できるため、列が存在することはわかっています。

どこが間違っていますか?

4

3 に答える 3

35

「entitieid」でクエリできるはずです。

Sugar ORM は、テーブルに列を作成するときに何らかの変換を行います。以下に基本的な例を示します。

String firstName; //creates column first_name
int entitie_id;   //creates column entitieid

ドキュメントでは、キャメル ケースからアンダースコア区切りへの変換のみが指定されています。私はもう一方を理解しなければなりませんでした。

于 2015-05-12T13:28:57.790 に答える
0

SugarORM は現在toSQLName()、クラスのメソッドを使用StringUtilして列の名前を生成します。たとえば、次のようになります。

List<NodeSugar> nodesugars = NodeSugar.find(NodeSugar.class, StringUtil.toSQLName("entitie_id")+" = ? ", String.valueOf(nodeid));

それを行うもう 1 つの適切な方法は、Select クラスを使用することです。

List<NodeSugar> nodesugars = Select.from(NodeSugar.class).where(Condition.prop(StringUtil.toSQLName("entitie_id")).eq(nodeid)).list();

https://satyan.github.io/sugar/query.html

于 2020-02-09T21:51:00.280 に答える