jpa2.2.10 JpaSpecificationExecutor Specification 查询时,实体类中存在@OneToMany,怎么才能查询的时候不查询该@OneToMany的关联表?具体怎么写
时间: 2023-06-05 20:05:42 浏览: 166
浅谈mysql中多表不关联查询的实现方法
对于这个问题,您可以在查询时通过join()方法指定不查询@OneToMany关联表。举个例子,如果有一个实体A与实体B是一对多关系,那么您可以这样写查询条件:
```java
Specification<A> specification = (root, query, builder) -> {
query.distinct(true); // 去重,避免查询结果重复
root.fetch("otherRelatedProperties", JoinType.LEFT); // 指定不查询关联表
// 加入其它的查询条件
// builder.equal(...)
// builder.like(...)
// ...
return builder.conjunction();
};
List<A> result = repository.findAll(specification);
```
其中,`root.fetch("otherRelatedProperties", JoinType.LEFT);` 方法就是指定了不查询A实体的关联表B。
阅读全文