私は私の図b内のノートは、Aの多くの子供に一つであり、私のデータベースにマッピングされた以下のクラス構造を持っている、など私は私の結果が戻って休止状態からの設定取得するとき休止状態と選択的遅延ロード
a
-b
--c
-d
--e
---f
---g
今、私はそれをプラグインjibxにマーシャリングされ、クライアントに送信されます。私の問題は、jibxが遅延ロードレコードにアクセスしようとしたときです。その時点で、休止状態のセッションから切断されたため、例外が発生します。
今、さらに悪化させるために、クラスa、b、c、dのすべてのレコードを持ちたいがe、f、gのレコードはない。次の問合せでは、a、d、e、f、gおよびすべてのbまたはcと、次の問合せのすべてがa、d、gおよびすべての残りのものを必要とする場合があります。
ので、私のDAOクラスは次のようになります
public class SurveyNameDAO extends HibernateDaoSupport
{
public List<SurveyName> getPermittedSurveys(String userName)
{
StringBuffer sql = new StringBuffer();
sql.append("select distinct sn ");
sql.append("from SurveyName as sn, SurveyNameStore name_store ");
sql.append("where name_store.showStoreLocation.storeName in (select ng.pnName ");
sql.append("from NukeGroups as ng, NukeUsers as nu ");
sql.append("where nu.pnName = '" + userName + "')");
SurveyName loc = null;
List l = getHibernateTemplate().find(sql.toString());
return l;
}
}
基本的な質問は、私はリターンクラスをロードするように言って指標のいくつかの種類を追加することができますどこか私はこの方法を変更(およびそれのような多くの)可能です私は上記のことを話し、その後、休止状態から完全に切り離し、jibxに送るときの遅延ロードを忘れてしまいます。
クエリの変数をa、b、c、...に置き換えることをお勧めします。上記の図のように、関係がどのようにクエリに関連しているかを理解することができます。それ以外は、これは私が定期的にやるより少し多めのSQLなので、実用的なものより少しでも努力しなければ助けてくれるのか分かりません=) – stevendesu
それはHQLクエリの問題ではありません。結果をそのクラスにロードする方法を休止状態に伝えます。 – scphantm