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 不是实体类型,因此该查询的 Eclipse 投诉。我无法使用可以检索用户标签的 JPA QL 来制定连接查询

非常感谢任何帮助。

4

1 回答 1

0

我能够如下制定查询

SELECT tag.tagName FROM Tag tag WHERE tag.users = :users

这就像我用于 Post 和 User 的查询

但是我还有一个疑问,如果我们在这种情况下不需要编写连接查询,那么在哪些场景中使用 JPA QL 连接查询?

于 2013-04-13T17:29:28.080 回答