質問

言い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

だと思い関係機関となった。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top