From 498849ec6b76d1db2aee951e9e05c156fb9e92c5 Mon Sep 17 00:00:00 2001 From: Kavin <20838718+FireMasterK@users.noreply.github.com> Date: Tue, 15 Feb 2022 11:37:21 +0000 Subject: [PATCH] Replace native query with criteria api for feeds (#190) --- .../me/kavin/piped/utils/ResponseHelper.java | 93 +++++++++++-------- .../me/kavin/piped/utils/obj/FeedItem.java | 24 ----- 2 files changed, 54 insertions(+), 63 deletions(-) delete mode 100644 src/main/java/me/kavin/piped/utils/obj/FeedItem.java diff --git a/src/main/java/me/kavin/piped/utils/ResponseHelper.java b/src/main/java/me/kavin/piped/utils/ResponseHelper.java index f00928e..806bfc8 100644 --- a/src/main/java/me/kavin/piped/utils/ResponseHelper.java +++ b/src/main/java/me/kavin/piped/utils/ResponseHelper.java @@ -49,6 +49,7 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.JoinType; import javax.persistence.criteria.Root; import java.io.IOException; import java.util.*; @@ -728,26 +729,34 @@ public class ResponseHelper { if (user != null) { - @SuppressWarnings("unchecked") - List queryResults = s.createNativeQuery( - "select Video.*, Channel.* from videos as Video left join channels as Channel on Video.uploader_id = Channel.uploader_id inner join users_subscribed on users_subscribed.channel = Channel.uploader_id where users_subscribed.subscriber = :user") - .setParameter("user", user.getId()).addEntity("Video", Video.class) - .addEntity("Channel", me.kavin.piped.utils.obj.db.Channel.class).getResultList(); + CriteriaBuilder cb = s.getCriteriaBuilder(); - List feedItems = new ObjectArrayList<>(); + // Get all videos from subscribed channels, with channel info + CriteriaQuery