0

次のようなテーブル構造があります

table user: iduser, firstName, lastName, username, email, dateJoined, dateOfBirth, password
table tag : idtag, tagName
table post: idpost, title, content, iduser, date, dateCreated
table post_tag : idpost, idtag :-join table for many to many relationship for tag and post
table user_tag : iduser, idtag :-join table for many to many relationship for user and tag

私が欲しいのは、JPA クエリを使用した特定のユーザーのタグの名前です。また、ユーザーの投稿を取得したかったので、次の NamedQuery を使用して取得できました

SELECT p FROM Post p WHERE p.user = :user ORDER BY p.dateCreated DESC

Post と user はどちらもエンティティであり、有効な JPA クエリであるため、これを使用して、ユーザーの投稿を正常に取得できました

しかし、ユーザーの投稿を取得したのと同じように、特定のタグを取得しようとすると、次のような結合クエリを作成しようとしました

SELECT t.tagName FROM tag t JOIN user_tag ut ON ut.idtag = t.idtag JOIN user u ON ut.iduser = u.iduser WHERE u.username = :username

しかし、user_tag はエンティティ タイプではないため、このクエリに対する不満はありません。ユーザーのタグを取得できる JPA QL を使用して結合クエリを作成できません

どんな助けでも大歓迎です。

4

1 に答える 1