java - 如何返回 JPA 中最大 Collection 的大小?

标签 java jpa jpql entitymanager

这是我的代码:

@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();
}

最佳答案

不是 mysql 向导,但你不能这样做吗?

select MAX(b.authors.size) from BookImpl b

关于java - 如何返回 JPA 中最大 Collection 的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25581219/

相关文章:

spring - 为什么@Transactional 会自动保存到数据库

java - JPA 查询 MONTH/YEAR 函数

java - 如何使用 Unicode 或 Java 中的任何替代方法显示 "sigma-hat"? (我有部分解决方案)

java - 解决JSP中的并发问题

java - Hibernate多对多映射到同一实体单向

java - JPA 中的 "circular references"是反模式吗?

java - JPQL SELECT 日期语句之间

java - 为什么我收到与 JPQL 查询相关的 HibernateException(命名查询中的错误)?

java - 通过参数同步 Java 方法

java - 无法从不同包中定义的子类访问类的 protected 成员