質問
言い5つのテーブル、
tblBlogs tblBlogPosts tblBlogPostComment tblUser tblBlogMember
BlogId BlogPostsId BlogPostCommentId UserId BlogMemberId
BlogTitle BlogId CommentText FirstName UserId
PostTitle BlogPostsId BlogId
BlogMemberId
現在取り込んでのみをブログや投稿するblogMemberうは言った。などにより、どうやって書くこ平野の旧SQL?
SELECT b.BlogTitle, bp.PostTitle, bpc.CommentText FROM tblBlogs b
INNER JOIN tblBlogPosts bp on b.BlogId = bp.BlogId
INNER JOIN tblBlogPostComment bpc on bp.BlogPostsId = bpc.BlogPostsId
INNER JOIN tblBlogMember bm ON bpc.BlogMemberId = bm.BlogMemberId
WHERE bm.UserId = 1;
ご覧のとおり、すべて内でのみ行が取得されたユーザが参後のブログです。なので、とって3つのブログがid1,2,3(ブログユーザーが参加していtblBlogMembers)が、ユーザーのみが、ブログの2つの言BlogPostId=1)です。その行が取得され、1,3などで内。どんな書くこのようなクエリーに JPQL?
にJPQLまだ簡単な質問のように言う:
Select bm.blogId from tblBlogMember Where bm.UserId = objUser;
がobjUser供給用:
em.find(User.class,1);
このままですべてのブログ(こちらblogIdを表すオブジェクトのブログをユーザに入社したのでループを通じてなすべてのゃいます。ものにならないようにしたい秋にはこのループを事業と書くことも私のJavaコードです。代わりに、たいがためにデータベースエンジンをいいます。なので、どうやって書くの平SQL入JPQL?どのタイプのオブジェクトのJPQLクエリが。。。だけを選択複数の分野からの表に示す。るクラスI網の結果は何ですか?
と思う私の要件を正しくされていなぜひ<url>までご連絡ください。
更新:って、パスカルの答えんJPQLクエリのSQLクエリ。今は少し問題です。このクエリでは、不完全な:
SELECT bm.blogId FROM BlogMembers bm
INNER JOIN bm.blogId b
INNER JOIN b.blogPostsList bp
INNER JOIN bp.blogPostCommentList bpc
WHERE bm.userId = :userId
私をいつでも変更することに
SELECT bm.blogId FROM BlogMembers bm
INNER JOIN bm.blogId b
INNER JOIN b.blogPostsList bp
INNER JOIN bp.blogPostCommentList bpc
WHERE bpc.blogMembersId = bm.blogMembersId AND bm.userId = :userId
上記のクエリがあり、びっくりしました。どのようこの問題を解決することはできま?
解決 2
[OK]を、これが最終的な答えです。それは、この1行をフレームに1時間かかりました。私は、この時間の間、多くの奇妙なエラーを得たが、今私の概念は十分に明確であります:
@NamedQuery(name = "BlogMembers.findBlogsOnWhichCommentsAreMade",
query = "SELECT bm.blogId FROM BlogMembers bm INNER JOIN bm.blogId b
INNER JOIN b.blogPostsList bp INNER JOIN bp.blogPostCommentList bpc
INNER JOIN bpc.blogMembersId bmt WHERE bm.userId = :userId")
他のヒント
にJPQLまだ簡単な質問(...)
ることのない真実JPQLな支援 [ LEFT [OUTER] | INNER ] JOIN
.内部接合の頁をご参照ください 4.4.5.1内参加と参加) の仕様:
4.4.5.1内参加と参加)
構文の内側からの参加 操作
[ INNER ] JOIN join_association_path_expression [AS] identification_variable
例えば、クエリを記入 の関係 お客様です。このタイプの 参加を通化による競争力の強化に取り組参加し 外部キー関係を データベースです。
SELECT c FROM Customer c JOIN c.orders o WHERE c.status = 1
キーワード内側のオプションです :
SELECT c FROM Customer c INNER JOIN c.orders o WHERE c.status = 1
だと思い関係機関となった。