假设我有以下 2 个类(class):
@Entity
class Article {
@Id
int id;
@ManyToMany(mappedBy="articles")
List<Tag> tags;
}
@Entity
@NamedQueries({
@NamedQuery(name = "Tag.trends", query = "SELECT t FROM Tag t") // Some magic stuff here..
})
class Tag {
@Id
String name;
@ManyToMany
List<Articles> articles;
}
现在我想创建一个命名查询来选择最常用的标签。
因此,这将需要一个连接、计数和一个排序依据。但我似乎无法弄清楚这一点。
问题: 如何选择最常用的标签?
例如,如果以下文章具有以下标签:
Article: Tags
0: A, B
1: A
2: C
3: A, C
输出
A // 3 times
C // 2 times
B // 1 time
最佳答案
您可以使用类似的东西来实现您想要的目标
SELECT t FROM Tag t ORDER BY SIZE(t.articles) ASC
这将为您带来按文章数量排序的标签列表。
关于java - 最常用标签的 NamedQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36185398/