Skip to content

Commit

Permalink
Merge pull request #179 from Codiary-UMC-6th/feature/#178-post-entity…
Browse files Browse the repository at this point in the history
…-refactoring

Refactor: Post의 Entity내의 카테고리 항목 EAGER에서 LAZY fetch로 변경 및 Repository 쿼리문 수정
  • Loading branch information
ParkJh38 authored Aug 19, 2024
2 parents 1649170 + ec1a8ea commit c73c209
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ public class Post extends BaseEntity {
private Boolean postStatus;

@Builder.Default
@ManyToMany(fetch = FetchType.EAGER)
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(
name = "post_category",
joinColumns = @JoinColumn(name = "post_id"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,20 +27,19 @@ public interface PostRepository extends JpaRepository<Post, Long> {
boolean existsByTeam(Team team);
boolean existsByProject(Project project);
boolean existsByMember(Member member);

Optional<Post> findTopByPostIdLessThanOrderByCreatedAtDescPostIdDesc(Long postId);

Optional<Post> findTopByPostIdGreaterThanOrderByCreatedAtAscPostIdAsc(Long postId);


@Query("SELECT p FROM Post p JOIN FETCH p.project WHERE p.member = :member AND p.createdAt BETWEEN :startDate AND :endDate ORDER BY p.createdAt ASC")
List<Post> findByMemberAndCreatedAtBetweenOrderByCreatedAtAsc(@Param("member") Member member, @Param("startDate") LocalDateTime startDate, @Param("endDate") LocalDateTime endDate);

@Query("SELECT p.postId FROM Post p JOIN p.categoriesList c WHERE LOWER(c.name) LIKE LOWER(CONCAT('%', :categoryName, '%'))")
@Query("SELECT p.postId " +
"FROM Post p " +
"JOIN p.categoriesList c " +
"WHERE LOWER(c.name) LIKE LOWER(CONCAT('%', :categoryName, '%'))")
List<Long> findPostIdsByCategoryName(@Param("categoryName") String categoryName);

Page<Post> findByPostIdIn(List<Long> postIds, Pageable pageable);

@Query("SELECT p FROM Post p JOIN FETCH p.project WHERE p.member = :member AND p.createdAt BETWEEN :startDate AND :endDate ORDER BY p.createdAt ASC")
List<Post> findByMemberAndCreatedAtBetweenOrderByCreatedAtAsc(@Param("member") Member member, @Param("startDate") LocalDateTime startDate, @Param("endDate") LocalDateTime endDate);
@Query("SELECT p FROM Post p LEFT JOIN p.authorsList a LEFT JOIN p.project j WHERE (p.member = :member OR a.member = :member) AND j.projectId = :projectId ORDER BY p.createdAt DESC")
Page<Post> findPostsByMemberOrAuthorAndProjectId(@Param("member") Member member, @Param("projectId") Long projectId, Pageable pageable);

Expand Down

0 comments on commit c73c209

Please sign in to comment.