Skip to content

Commit

Permalink
[MERGE] Index 추가 - #305
Browse files Browse the repository at this point in the history
[FEAT] Index 추가 - #305
  • Loading branch information
rlarlgnszx authored Oct 18, 2024
2 parents 257c9e7 + 0c64974 commit e95b524
Show file tree
Hide file tree
Showing 6 changed files with 17 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Index;
import jakarta.persistence.Table;
import jakarta.validation.constraints.NotNull;
import java.time.LocalDate;
Expand All @@ -25,7 +26,12 @@
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor
@EntityListeners(AuditingEntityListener.class)
@Table(name = "courses")
@Table(name = "courses", indexes = {
@Index(columnList = "user_id"),
@Index(name = "idx_country_city", columnList = "country, city"),
@Index(name = "idx_cost", columnList = "cost"),
@Index(name = "idx_created_at", columnList = "createdAt")}
)
public class Course extends DateBase {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Index;
import jakarta.persistence.Table;
import java.time.LocalDate;
import java.time.LocalTime;
Expand All @@ -20,7 +21,7 @@
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor(access = AccessLevel.PRIVATE)
@Table(name = "dates")
@Table(name = "dates",indexes = @Index(columnList = "user_id"))
public class Date extends DateBase {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@ public interface CourseRepository extends JpaRepository<Course, Long> , JpaSpeci
@Query(value = "DELETE FROM courses WHERE course_id = :courseId", nativeQuery = true)
void deleteByCourse(@Param("courseId") Long courseId);
List<Course> findByUser(User user);
@Query("SELECT c FROM Course c LEFT JOIN Like l ON c.id = l.course.id GROUP BY c.id ORDER BY COUNT(l) DESC")
@Query("SELECT c FROM Course c INNER JOIN Like l ON c.id = l.course.id GROUP BY c.id ORDER BY COUNT(l) DESC LIMIT 5")
List<Course> findTopCoursesByLikes(Pageable pageable);
@Query("SELECT c FROM Course c ORDER BY c.createdAt DESC")
@Query("SELECT c FROM Course c ORDER BY c.createdAt DESC LIMIT 3")
List<Course> findTopCoursesByCreatedAt(Pageable pageable);

@Modifying
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Index;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
Expand All @@ -15,7 +16,6 @@
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.dateroad.common.BaseTimeEntity;
import org.dateroad.date.domain.Course;

Expand All @@ -24,7 +24,7 @@
@AllArgsConstructor(access = AccessLevel.PRIVATE)
@Builder(access = AccessLevel.PRIVATE)
@Getter
@Table(name = "images")
@Table(name = "images", indexes = @Index(columnList = "course_id"))
public class Image extends BaseTimeEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Index;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
Expand All @@ -22,7 +23,7 @@
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor
@Builder(access = AccessLevel.PRIVATE)
@Table(name = "likes")
@Table(name = "likes", indexes = @Index(columnList = "course_id"))
public class Like extends BaseTimeEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
import jakarta.persistence.Index;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
Expand All @@ -16,7 +17,7 @@
@SuperBuilder
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor(access = AccessLevel.PRIVATE)
@Table(name = "course_places")
@Table(name = "course_places",indexes = @Index(columnList = "course_id"))
public class CoursePlace extends Place {
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "course_id")
Expand Down

0 comments on commit e95b524

Please sign in to comment.