diff --git a/music-houduan/src/main/java/com/test/musichouduan/service/impl/SingerServiceImpl.java b/music-houduan/src/main/java/com/test/musichouduan/service/impl/SingerServiceImpl.java index 8bf6fd1..5dcd0ff 100644 --- a/music-houduan/src/main/java/com/test/musichouduan/service/impl/SingerServiceImpl.java +++ b/music-houduan/src/main/java/com/test/musichouduan/service/impl/SingerServiceImpl.java @@ -93,10 +93,14 @@ public class SingerServiceImpl implements SingerService { // 构建查询条件 Specification spec = (root, query, cb) -> { List predicates = new ArrayList<>(); + query.distinct(true); // 添加 distinct 查询 // 关键字查询 if (StringUtils.hasText(keyword)) { - predicates.add(cb.like(root.get("name"), "%" + keyword + "%")); + Predicate p1 = cb.like(root.get("name"), "%" + keyword + "%"); + Predicate p2 = cb.like(root.get("introduction"), "%" + keyword + "%"); + Predicate p3 = cb.like(root.join("musics", jakarta.persistence.criteria.JoinType.LEFT).get("name"), "%" + keyword + "%"); + predicates.add(cb.or(p1, p2, p3)); } // 类型查询 diff --git a/music-qianduan/src/views/Singer.vue b/music-qianduan/src/views/Singer.vue index 850d099..3d6da4a 100644 --- a/music-qianduan/src/views/Singer.vue +++ b/music-qianduan/src/views/Singer.vue @@ -243,7 +243,7 @@ onMounted(() => { -
+

热门歌手

{
-

全部歌手

+

搜索结果

+

全部歌手