Ответ 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. Я подозреваю, что вы их уже нашли. Ниже представлены документы для необработанных запросов.