1 package org.petify.backend.repository; 2 3 import org.petify.backend.models.ApplicationUser; 4 import org.petify.backend.models.UserAchievement; 5 6 import org.springframework.data.jpa.repository.JpaRepository; 7 import org.springframework.data.jpa.repository.Query; 8 import org.springframework.data.repository.query.Param; 9 import org.springframework.stereotype.Repository; 10 11 import java.util.List; 12 import java.util.Optional; 13 14 @Repository 15 public interface UserAchievementRepository extends JpaRepository<UserAchievement, Long> { 16 @Query("SELECT ua FROM UserAchievement ua JOIN FETCH ua.achievement WHERE ua.user = :user") 17 List<UserAchievement> findByUser(@Param("user") ApplicationUser user); 18 19 List<UserAchievement> findByUserAndCompleted(ApplicationUser user, Boolean completed); 20 21 Optional<UserAchievement> findByUserAndAchievementId(ApplicationUser user, Long achievementId); 22 }