我的表结构如下
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和用户都是实体,并且是有效的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
但是对于此查询的eclipse投诉,因为user_tag不是实体类型。我无法使用可以为用户检索标签的JPA QL来制定连接查询
非常感谢任何帮助。
答案 0 :(得分:0)
我能够按如下方式制定查询
SELECT tag.tagName FROM Tag tag WHERE tag.users = :users
这就像我用于帖子和用户的查询
但我还有另一个疑问,如果我们在这种情况下不需要编写连接查询,那么在哪些情况下会使用JPA QL连接查询?