Вопрос

У меня есть две сущности: Entitya и Entityb. У Entityb есть иностранная область Entitya:

@DatabaseField(foreign=true, columnName=ENT_A_NAME)
private EntityA entityA;

Теперь я хочу запросить все записи EntityB, где Entitya - ноль. Итак, я сделал следующий запрос:

bDao.queryBuilder().where().isNull(EntityB.Ent_A_NAME).prepare();

Если я выполняю запрос, я получу пустой результат.

Если я выполняю queryAll() Я вижу, что записи EntityB всегда имеют связанный порядок-объект со всеми значениями, установленными NULL/0.

Как я могу выполнить свой запрос?

Это было полезно?

Решение

Я не уверен @toni4780. Следующий тестовый пример работает для меня. Я не вижу ничего, что вы делаете не так.

В таблице для EntityB, Ормлит на самом деле хранит я бы принадлежащий 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());
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top