0

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

4

2 に答える 2

0

getTranslatedSQLStringを使用してこれを行う方法を見つけることができませんでした。DatabaseRowにデータを入力する必要があると思いますが、適切な方法をまだ見つけていません。今のところ、私は「ブルートフォース」置換を使用しています。すべてのパラメーターを「記憶」し、各「?」で検索/置換を行います。クエリにサインインします。

于 2011-10-10T12:16:18.067 に答える