From 8d23459406287ef4fc08f32184f24ce88f4f127f Mon Sep 17 00:00:00 2001 From: Kavin <20838718+FireMasterK@users.noreply.github.com> Date: Fri, 18 Nov 2022 21:49:05 +0000 Subject: [PATCH] Simplify and optimize playlist query. --- .../java/me/kavin/piped/utils/DatabaseHelper.java | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/src/main/java/me/kavin/piped/utils/DatabaseHelper.java b/src/main/java/me/kavin/piped/utils/DatabaseHelper.java index 7e861bf..47539fe 100644 --- a/src/main/java/me/kavin/piped/utils/DatabaseHelper.java +++ b/src/main/java/me/kavin/piped/utils/DatabaseHelper.java @@ -142,16 +142,11 @@ public class DatabaseHelper { CriteriaBuilder cb = s.getCriteriaBuilder(); CriteriaQuery cr = cb.createQuery(PlaylistVideo.class); var root = cr.from(PlaylistVideo.class); - root.fetch("channel", JoinType.RIGHT); cr.select(root); - var sq = cr.subquery(String.class); - { - var sqRoot = sq.from(Playlist.class); - sq.select(sqRoot.get("videos").get("id")) - .where(cb.equal(sqRoot.get("playlist_id"), UUID.fromString(id))); - } - cr.where(root.get("id").in(sq)); - + root.fetch("channel", JoinType.LEFT); + var plRoot = cr.from(Playlist.class); + cr.where(cb.equal(plRoot.get("playlist_id"), UUID.fromString(id))); + return s.createQuery(cr).list(); }