Java 如何使用谓词通过JpaRepository.findAll获得对象的不同列表?
我有点像:Java 如何使用谓词通过JpaRepository.findAll获得对象的不同列表?,java,spring-data-jpa,querydsl,Java,Spring Data Jpa,Querydsl,我有点像: Predicate p = ...; List<MyObject> objectList = (List<MyObject>) myRepository.findAll(p); // myRepository is autowired 谓词p=。。。; List objectList=(List)myRepository.findAll(p);//myRepository是自动连线的 这将获取所有MyObject的列表,其中包含重复项。是否可以获得一个不同
Predicate p = ...;
List<MyObject> objectList = (List<MyObject>) myRepository.findAll(p); // myRepository is autowired
谓词p=。。。;
List objectList=(List)myRepository.findAll(p);//myRepository是自动连线的
这将获取所有MyObject的列表,其中包含重复项。是否可以获得一个不同的列表
我真的需要使用EntityManager和CriteriaBuilder吗?或者可以只使用谓词和repository对象来完成吗
我不是说手动遍历列表并删除重复项,也不是说使用任何Collections API,而是更多关于JPA或QueryDSL API的内容。是的,这是可能的。下面是我可以想到的简单步骤
- 在MyObject类中实现hashCode()和equals()
- 基于上面的列表直接使用构造函数创建一个集合,该构造函数将集合作为参数
- 在MyObject类中实现hashCode()和equals()
- 基于上面的列表直接使用构造函数创建一个集合,该构造函数将集合作为参数
- 是的,这是可能的。下面是我能想到的简单步骤