Итак, что я делаю, так это создаю подзапрос, который получает список значений ID, затем основной запрос получает все необходимые значения и добавляет порядок.
У меня есть это:
ReportQuery querySub = new ReportQuery(Predmet.class, generatedExpression);
querySub.addAttribute("m_id");
DatabaseRow row = new DatabaseRow();
querySub.prepareCall(getSession(), row);
// This part is the problem
String sql = querySub.getTranslatedSQLString(getSession(), row);
Проблема с этим кодом в том, что он не возвращает TranslatedSQLString, он возвращает тот же результат, что и querySub.getSQLString(). Теперь во всех примерах кода, которые я видел, они либо инстансировали строку как новый объект, либо не удосужились написать, откуда они взяли ссылку, но в любом случае это не работает (проблема с версией TopLink?). Я предполагаю, что мне нужно заполнить объект DatabaseRow самостоятельно, но я не могу найти ни одного примера в Интернете.