質問
EntityaとEntityBの2つのエンティティがあります。 EntityBには、Entityaの外国分野があります。
@DatabaseField(foreign=true, columnName=ENT_A_NAME)
private EntityA entityA;
次に、EntityaがnullであるEntityBのすべてのエントリを照会したいと思います。だから私は次の質問をしました:
bDao.queryBuilder().where().isNull(EntityB.Ent_A_NAME).prepare();
クエリを実行すると、空の結果が折り返されます。
実行した場合 queryAll()
EntityBのエントリは、常にすべての値がnull/0に設定された関連する注文オブジェクトを持っていることがわかります。
クエリを実行するにはどうすればよいですか?
解決
@toni4780かどうかはわかりません。次のテストケースは私に役立ちます。あなたが間違っていることを何も見ません。
テーブルで EntityB
, ormlite 実際に保存します ID の EntityA
それで、私はそれがnullか0かどうか疑問に思っていますか?あなたは次のことを試しましたか?
bDao.queryBuilder().where().eq(EntityB.Ent_A_NAME, 0).prepare();
または両方:
bDao.queryBuilder().where().isNull(EntityB.Ent_A_NAME).
or().eq(EntityB.Ent_A_NAME, 0).prepare();
これが機能する私のユニットテストコードです:
Dao<Order, Integer> orderDao =
DaoManager.createDao(connectionSource, Order.class);
TableUtils.createTable(connectionSource, Order.class);
int numOrders = 10;
for (int orderC = 0; orderC < numOrders; orderC++) {
Order order = new Order();
order.val = orderC;
assertEquals(1, orderDao.create(order));
}
List<Order> results = orderDao.queryBuilder().where()
.isNull(Order.ACCOUNT_FIELD_NAME).query();
assertNotNull(results);
assertEquals(numOrders, results.size());
所属していません StackOverflow