ORMLite:查询空白字段
问题描述:
我有两个实体:EntityA和EntityB。 EntityB有EntityA的洋场:ORMLite:查询空白字段
@DatabaseField(foreign=true, columnName=ENT_A_NAME)
private EntityA entityA;
现在我想查询EntityB的所有条目,其中EntityA为空。所以我做了以下查询:
bDao.queryBuilder().where().isNull(EntityB.Ent_A_NAME).prepare();
如果我执行查询,我得到一个空的结果集。
如果我执行queryAll()
我看到EntityB的条目始终有一个关联的Order-Object,其所有值都设置为null/0。
如何执行我的查询?
答
我不确定@ Toni4780。以下测试案例适用于我。我没有看到你做错了什么。
在表EntityB
,ORMLite实际存储ID的EntityA
的所以我想知道,如果它是空或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());
确定。现在它使用了isNull()和eq()。(..,0)。奇怪的是,一些(2)项目返回isNull()和其他(5)项目与eq()返回。一个旁注:我真的很喜欢ormlite。保持良好的工作 :) – Toni4780