Подтвердить что ты не робот

Ormlite внутреннее соединение на трех таблицах

Я хочу создать внутреннее соединение на трех таблицах, например, таких как:

SELECT C.Description, D.ItemDescription
  FROM OrderDetailStatement AS D 
 INNER JOIN OrderHeaderStatement AS H 
    ON H.OrderHeaderStatementRefID = D.OrderHeaderStatementRefID 
 INNER JOIN customers AS C 
    ON H.CustomerRefID = C.CustomerRefID
 WHERE (D.MixedValue > 1000)

но я немного смущен, не могли бы вы предоставить мне пошаговое руководство?

заблаговременно

4b9b3361

Ответ 1

ORMLite теперь поддерживает простые JOIN заявления. Вы можете сделать что-то вроде следующего:

// start the order header query
QueryBuilder<OrderHeader, Integer> orderHeaderQb = orderHeaderDao.queryBuilder();
QueryBuilder<Customer, Integer> customerQb = customerDao.queryBuilder();
// join with the order query
orderHeaderQb.join(customerQb);
// start the order statement query
QueryBuilder<OrderStatement, Integer> orderStatementQb =
    orderStatementDao.queryBuilder();
orderStatementQb.where().gt("mixedvalue", 100);
// join with the order-header query
orderStatementQb.join(orderHeaderQb);
List<OrderStatement> orderStatementQb.query();

Обратите внимание, однако, что вы можете получать сущности из построителя запросов с помощью этого механизма. Если вы хотите получить два поля описания из разных объектов, вам придется использовать необработанный запрос.

Существует поддержка "необработанных запросов", в том числе метод Dao.queryRaw(), где вы можете использовать свой собственный SQL. Я подозреваю, что вы их уже нашли. Ниже представлены документы для необработанных запросов.