私がやっていることは、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 オブジェクトを自分で設定する必要があると思いますが、オンラインで例が見つかりません。