指定应考虑进行不同计算的列

Har*_*own 5 java jpa criteria distinct criteria-api

我正在使用javax.persistence.criteria.CriteriaBuilderjavax.persistence.criteria.CriteriaQuery选择一些实体。

我现在只想选择应该由某个列指定的唯一实体。

javax.persistence.criteria.CriteriaQuery#distinct只返回唯一实体的方法。

我宁愿需要类似的东西

CriteriaQuery<T> distinct(String... columnNames)
Run Code Online (Sandbox Code Playgroud)

你知道我如何在我的 JPA 中烘焙如此独特的东西CriteriaQuery吗?

使用Hibernate似乎是可能的

Łuk*_*ski 3

下面的语句没有任何意义:

我现在只想选择应由特定列指定的唯一实体。

如果结果集“完全相同”,则按“不同”进行过滤。如果只有某些字段相同,则实体不相同。

您可以通过以下方式在结果集上创建不同的子句:

CriteriaBuilder builder = em.getCriteriaBuilder();
CriteriaQuery query = builder.createQuery();
Root<Friend> c = query.from(Friend.class);
query.multiselect(c.get(Friend_.firstName),c.get(Friend_.lastName)).distinct(true);
Run Code Online (Sandbox Code Playgroud)

那么您将从朋友实体中获得名字和姓氏的唯一组合。

例如...“给我朋友的所有独特组合,其中朋友的名字和姓氏是唯一的。” 但这并不意味着给我独特的朋友。