这是我的代码:
@Entity
@Table("Books")
public class BookImp implements Book {
@Id
@GeneratedValue
@Column(name = "id")
private Long id;
@ElementCollection
private Set<String> authors = new HashSet<String>();
// getters + constructors
}
我想创建一个SQL查询,它将返回最大作者集合的大小。我怎么能这样做?
编辑:对于那些建议使用for循环的人,我希望答案看起来像这样:
@Override
public int getLargestAuthors() {
return entityManager.createQuery("select b.authors from BookImpl b where b.authors.size ...").getSingleResult().size();
}
答案 0 :(得分:3)
不是mysql向导,但你不能这样做吗?
select MAX(b.authors.size) from BookImpl b
答案 1 :(得分:2)
SELECT m FROM BookImp m where size(m.authors) = (select max(size(c.authors)) FROM BookImp c)
这将返回一个或多个具有最大尺寸的BookImp。