1
Java Spring hibernateでテーブルを結合する際に問題があります。ここに私の問題があります:Java Spring Hibernateで複数のテーブルに結合する
私はWebサイトを開発しています。自分のページの1つで、x、y、zの3つのテーブルからデータが必要です。私はそれぞれをエンティティにマッピングし、独自のリポジトリを持っています。このページでは、私はこのクエリを使用してデータを表示しています:
SELECT x.a, y.b, z.c FROM x,y,z WHERE x.id = y.name AND z.id = y.personalId AND
(x.id like %'searchedId'% or y.id like %'searchedId'% or z.id like %'searchedId'%) AND
(x.name like %'searchedName'% or y.name like %'searchedName'% or z.name like %'searchedName'%)
問題がsearchedIdとsearchedNameは任意の列で、で、彼らは空の文字列とするとき、彼らは私が配置する必要はありません空の文字列です可能性がありそれらをスピードアップするために私の質問に入れてください。私はcriteria builderを使ってみましたが、結果が複数のテーブルから結合されているので、それらを任意のリポジトリに入れることはできません。申し訳ありません
StringBuilder query = new StringBuilder("SELECT x.a, y.b, z.c FROM x,y,z WHERE x.id = y.name AND z.id = y.personalId ");
if (searchId !=null)
query .append(" AND
(x.id like %'searchedId'% or y.id like %'searchedId'% or z.id like %'searchedId'%) ");
if (searchedName !=null)
query .append(" AND
(x.name like %'searchedName'% or y.name like %'searchedName'% or z.name like %'searchedName'%) ");
SQLQuery query = session.createSQLQuery(query);
List result = query.list();
を私は動的にクエリを構築し、あなたの見ることができません。 –
私は今すぐ追加しました。あなたはnativeSQLクエリを作成することができます。searchIdとsearchNameはnullにならず、メインクエリに追加されます。 – shankarsh15
それをどうすればいいですか?私はリポジトリに入れるべきですか?戻り値は何ですか?申し訳ありませんが、私はこれで新しいです。 –