【发布时间】:2013-04-05 20:07:12
【问题描述】:
我的表结构如下
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
使用这个,我成功地为用户检索帖子,因为帖子和用户都是实体,并且是有效的 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 不是实体类型,因此该查询的 Eclipse 投诉。我无法使用可以检索用户标签的 JPA QL 来制定连接查询
非常感谢任何帮助。
【问题讨论】:
标签: join jpa-2.0 jpql named-query