複数のジョインを持つ2つの大きなSQLクエリーがあり、それらを単一のリストにマージしてDAOクラスにキャストしようとしましたが、成功しませんでした。私のクエリのHERESに簡単な例:2つのHibernate SQLクエリーのリストをマージする
String sql_comp = "select cs.identification as id from code_system";
Query q = session.createSQLQuery(sql_comp)
.addScalar("id", StandardBasicTypes.LONG)
.setResultTransformer(Transformers.aliasToBean(FHIR_Parameters.class));
List list = q.list();
String sql_comp2 = "select vs.identification as id_2 from value_set";
Query q2 = session.createSQLQuery(sql_comp2)
.addScalar("id_2", StandardBasicTypes.LONG)
.setResultTransformer(Transformers.aliasToBean(FHIR_Parameters.class));
List list_2 = q2.list();
私はすでに様々な方法を試してみましたが、私に次のような方法により、最も成功を約束しています
List result = new ArrayList();
result.addAll(list);
result.addAll(list_2);
fhir_codesystem = (FHIR_Parameters) result.get(0);
をしかし、最終的なキャストは常に最初のリストが含まれています。
誰かが私が間違っているアイデアですか?今までありがとう。
更新#1:
[OK]を、私のアプローチは愚かだった(私は要素ではなく、リストをマージしたかった...)としてウィーゲッター/セッターを、それを解決したことを実現した、ありがとうございました次のようになります。
FHIR_Parameters fhir_codesystem_2 = (FHIR_Parameters) list_2.get(0);
fhir_codesystem.setVs_Id(fhir_codesystem_2.getVs_Id());
私の質問はまだ解決していないのですか?私は古い要素の上に新しい要素を置き、空の属性を埋めることができますか?
あなたは2つのリストが空ではないと確信していますか? list.size()、list_2.size()およびresult.size()は何を返しますか? –
はい、リスト1のサイズは21、リスト2は22です。これは実際にシーケンスに依存します。 "list_2"を最初に追加したときに、 "list_2"の項目を解析すると、 "list_2"を最初に追加したときに、 "list"の項目を解析するときに "list"を追加するとき – MavidDeyers
なぜ:fhir_codesystem =(FHIR_Parameters)result.get(0); ??あなたは要素ではないリストが必要ですか? result.get(0)は結果リストの最初の要素を返すので、 –