所以我在做的是創建一個獲取ID值列表的子查詢,然後主查詢獲取所有必要的值並添加排序。如何使用getTranslatedSQLString獲取Toplink生成的查詢?
什麼我是這樣的:
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對象,但我在網上找不到任何示例。