【发布时间】:2021-03-17 19:50:33
【问题描述】:
我似乎无法添加匹配相关实体的 QueryByExample 探针。
@Entity
@Data
public class ArtistEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String description;
@ManyToMany(fetch = FetchType.EAGER)
private Set<GenreEntity> genreList = new HashSet<>();
@Version
private Long version;
}
@Entity
@Data
public class GenreEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
@Version
private Long version;
}
@Repository
public interface ArtistRepository extends JpaRepository<ArtistEntity, Long> {
}
当我尝试以下查询时,根据 Hibernate 的日志,我的探针没有针对流派运行任何条件
GenreEntity genreEntity = new GenreEntity();
genreEntity.setName("Heavy Metal");
ArtistEntity artistEntity = new ArtistEntity();
Set<GenreEntity> genreEntitySet = new HashSet<>();
genreEntitySet.add(genreEntity);
artistEntity.setGenreList(genreEntitySet);
Example<ArtistEntity> example = Example.of(artistEntity);
Pageable pagination = PageRequest.of(0, 10);
artistRepository.findAll(example, pagination);
我还尝试查看有关 QBE 的 Spring Data JPA 文档,但我没有找到任何具体提及此限制的内容,这让我认为这是一种意外行为。
【问题讨论】:
-
问题不清楚,你要执行什么样的查询?,我也没有注意到
ArtistEntitypojo 中的任何GenreList -
@MahmoudOdeh 对不起。在示例中添加了缺失的关系,ArtistEntity 也是我正在查询的实体。我的示例中有一个存储库,并且我正在使用示例执行 repository.findAll,如示例中所示
标签: java spring hibernate spring-data-jpa spring-data