EJBを使用してデータベースに接続するWebアプリケーションを開発しています。from句内のJPAサブクエリ
私たちのDBモデルでは、モバイルデバイステーブルと、機能を備えた別のテーブルと、機能の値を電話モデルとマップする最後のテーブルがあります。 モデル(id_model、...) 機能(id_feature、...) model_features(id_model、id_feature、値)
我々は一致する機能の数が注文したモデルを取得するクエリを実行します。すなわち、一致するフィーチャのリスト(すなわち、1から9)、 を渡し、これらのフィーチャのうちの少なくとも1つの値として「はい」を含むすべてのデバイスを希望し、前述のようにそれらを順序付ける。
私たちは、その仕事になり、SQLクエリを作成し、それが動作します:
SELECT CONCAT(subquery.numberf*100/9,"%") AS "Features", subquery.idModel AS "ID model"
FROM (select count(*) AS numberf, id_model AS idModel
FROM model_features
WHERE value LIKE '%Yes%' AND id_feature IN(1,2,3,4,5,6,7,8,9)
GROUP BY id_model) subquery
WHERE subquery.numberf > 0
ORDER BY subquery.numberf DESC
我々はJPAを使用しているので、私たちはJPQLのquerysを構築するために持っているので、それがでsubquerysを含めることはできませんFROM句では、 がWHERE句にサブクエリを「渡す」ことができるかどうか、そして悪い方法でパフォーマンスに影響しないかどうか疑問に思っています。どうすればいい?
あなただけのネイティブクエリを使用することはできますか?最終結果が実体ではなく集合体であるように思われる。 – wrschneider
私たちはその可能性について考えましたが、もし可能ならば、私たちはjpaとやります。 thanks @ wrschneider99 – frayab