Skip to content

Commit 151dacf

Browse files
authored
feat: 파견 대학 테이블명 변경 및 협정 대학 테이블 추가하는 DDL 작성 (#620)
* feat: 파견 대학 테이블명 변경 및 협정 대학 테이블 추가하는 DDL 작성 * refactor: 테이블명 변경 및 추가에 따른 엔티티 생성 - 또한 목데이터 생성 로직 수정 * test: 테스트 코드에서 University -> HostUniversity로 변경 * chore: 중복 인덱스 생성 방지를 위해 인덱스 생성 제거 - FK 제약조건을 추가할 때 인덱스가 없다면 알아서 추가하기 때문 * chore: home_university 테이블에 created/updated_at 추가
1 parent aaafc36 commit 151dacf

30 files changed

Lines changed: 182 additions & 123 deletions

src/main/java/com/example/solidconnection/admin/service/AdminMentorApplicationService.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414
import com.example.solidconnection.mentor.repository.MentorApplicationRepository;
1515
import com.example.solidconnection.siteuser.domain.SiteUser;
1616
import com.example.solidconnection.siteuser.repository.SiteUserRepository;
17-
import com.example.solidconnection.university.domain.University;
18-
import com.example.solidconnection.university.repository.UniversityRepository;
17+
import com.example.solidconnection.university.domain.HostUniversity;
18+
import com.example.solidconnection.university.repository.HostUniversityRepository;
1919
import java.util.List;
2020
import java.util.stream.IntStream;
2121
import lombok.RequiredArgsConstructor;
@@ -29,7 +29,7 @@
2929
public class AdminMentorApplicationService {
3030

3131
private final MentorApplicationRepository mentorApplicationRepository;
32-
private final UniversityRepository universityRepository;
32+
private final HostUniversityRepository hostUniversityRepository;
3333
private final SiteUserRepository siteUserRepository;
3434

3535
@Transactional(readOnly = true)
@@ -82,7 +82,7 @@ public void assignUniversity(
8282

8383
mentorApplication.validateCanAssignUniversity();
8484

85-
University university = universityRepository.getUniversityById(universityId);
85+
HostUniversity university = hostUniversityRepository.getHostUniversityById(universityId);
8686

8787
mentorApplication.assignUniversity(university.getId());
8888
}

src/main/java/com/example/solidconnection/mentor/dto/MatchedMentorResponse.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import com.example.solidconnection.mentor.domain.Mentor;
66
import com.example.solidconnection.siteuser.domain.SiteUser;
7-
import com.example.solidconnection.university.domain.University;
7+
import com.example.solidconnection.university.domain.HostUniversity;
88
import com.fasterxml.jackson.annotation.JsonInclude;
99
import java.util.List;
1010

@@ -27,7 +27,7 @@ public record MatchedMentorResponse(
2727
) {
2828

2929
public static MatchedMentorResponse of(Mentor mentor, SiteUser mentorUser,
30-
University university, boolean isApplied, Long roomId,
30+
HostUniversity university, boolean isApplied, Long roomId,
3131
String termName
3232
) {
3333
return new MatchedMentorResponse(

src/main/java/com/example/solidconnection/mentor/dto/MentorDetailResponse.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import com.example.solidconnection.mentor.domain.Mentor;
44
import com.example.solidconnection.siteuser.domain.SiteUser;
5-
import com.example.solidconnection.university.domain.University;
5+
import com.example.solidconnection.university.domain.HostUniversity;
66
import java.util.List;
77

88
public record MentorDetailResponse(
@@ -21,7 +21,7 @@ public record MentorDetailResponse(
2121
) {
2222

2323
public static MentorDetailResponse of(Mentor mentor, SiteUser mentorUser,
24-
University university, boolean isApplied,
24+
HostUniversity university, boolean isApplied,
2525
String termName
2626
) {
2727
return new MentorDetailResponse(

src/main/java/com/example/solidconnection/mentor/dto/MentorMyPageResponse.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import com.example.solidconnection.mentor.domain.Mentor;
44
import com.example.solidconnection.siteuser.domain.SiteUser;
5-
import com.example.solidconnection.university.domain.University;
5+
import com.example.solidconnection.university.domain.HostUniversity;
66
import java.util.List;
77

88
public record MentorMyPageResponse(
@@ -19,7 +19,7 @@ public record MentorMyPageResponse(
1919
List<ChannelResponse> channels
2020
) {
2121

22-
public static MentorMyPageResponse of(Mentor mentor, SiteUser siteUser, University university, String termName) {
22+
public static MentorMyPageResponse of(Mentor mentor, SiteUser siteUser, HostUniversity university, String termName) {
2323
return new MentorMyPageResponse(
2424
mentor.getId(),
2525
siteUser.getProfileImageUrl(),

src/main/java/com/example/solidconnection/mentor/dto/MentorPreviewResponse.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import com.example.solidconnection.mentor.domain.Mentor;
44
import com.example.solidconnection.siteuser.domain.SiteUser;
5-
import com.example.solidconnection.university.domain.University;
5+
import com.example.solidconnection.university.domain.HostUniversity;
66
import java.util.List;
77

88
public record MentorPreviewResponse(
@@ -20,7 +20,7 @@ public record MentorPreviewResponse(
2020
) {
2121

2222
public static MentorPreviewResponse of(Mentor mentor, SiteUser mentorUser,
23-
University university, boolean isApplied,
23+
HostUniversity university, boolean isApplied,
2424
String termName
2525
) {
2626
return new MentorPreviewResponse(

src/main/java/com/example/solidconnection/mentor/repository/MentorBatchQueryRepository.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
import com.example.solidconnection.siteuser.repository.SiteUserRepository;
1010
import com.example.solidconnection.term.domain.Term;
1111
import com.example.solidconnection.term.repository.TermRepository;
12-
import com.example.solidconnection.university.domain.University;
13-
import com.example.solidconnection.university.repository.UniversityRepository;
12+
import com.example.solidconnection.university.domain.HostUniversity;
13+
import com.example.solidconnection.university.repository.HostUniversityRepository;
1414
import java.util.Collections;
1515
import java.util.List;
1616
import java.util.Map;
@@ -26,7 +26,7 @@ public class MentorBatchQueryRepository { // 연관관계가 설정되지 않은
2626

2727
private final SiteUserRepository siteUserRepository;
2828
private final MentoringRepository mentoringRepository;
29-
private final UniversityRepository universityRepository;
29+
private final HostUniversityRepository hostUniversityRepository;
3030
private final TermRepository termRepository;
3131

3232
public Map<Long, SiteUser> getMentorIdToSiteUserMap(List<Mentor> mentors) {
@@ -47,16 +47,16 @@ public Map<Long, SiteUser> getMentorIdToSiteUserMap(List<Mentor> mentors) {
4747
));
4848
}
4949

50-
public Map<Long, University> getMentorIdToUniversityMap(List<Mentor> mentors) {
50+
public Map<Long, HostUniversity> getMentorIdToUniversityMap(List<Mentor> mentors) {
5151
List<Long> universityIds = mentors.stream().map(Mentor::getUniversityId).distinct().toList();
52-
List<University> universities = universityRepository.findAllById(universityIds);
53-
Map<Long, University> universityIdToUniversityMap = universities.stream()
54-
.collect(Collectors.toMap(University::getId, Function.identity()));
52+
List<HostUniversity> universities = hostUniversityRepository.findAllById(universityIds);
53+
Map<Long, HostUniversity> universityIdToUniversityMap = universities.stream()
54+
.collect(Collectors.toMap(HostUniversity::getId, Function.identity()));
5555

5656
return mentors.stream().collect(Collectors.toMap(
5757
Mentor::getId,
5858
mentor -> {
59-
University university = universityIdToUniversityMap.get(mentor.getUniversityId());
59+
HostUniversity university = universityIdToUniversityMap.get(mentor.getUniversityId());
6060
if (university == null) { // mentor.university_id에 해당하는 대학이 없으면 정합성 문제가 발생한 것
6161
throw new CustomException(DATA_INTEGRITY_VIOLATION, "mentor.university_id 에 해당하는 university 존재하지 않음");
6262
}

src/main/java/com/example/solidconnection/mentor/repository/MentorRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public interface MentorRepository extends JpaRepository<Mentor, Long> {
2121

2222
@Query("""
2323
SELECT m FROM Mentor m
24-
JOIN University u ON m.universityId = u.id
24+
JOIN HostUniversity u ON m.universityId = u.id
2525
WHERE u.region = :region
2626
""")
2727
Slice<Mentor> findAllByRegion(@Param("region") Region region, Pageable pageable);

src/main/java/com/example/solidconnection/mentor/repository/custom/MentorApplicationFilterRepositoryImpl.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import static com.example.solidconnection.location.region.domain.QRegion.region;
55
import static com.example.solidconnection.mentor.domain.QMentorApplication.mentorApplication;
66
import static com.example.solidconnection.siteuser.domain.QSiteUser.siteUser;
7-
import static com.example.solidconnection.university.domain.QUniversity.university;
7+
import static com.example.solidconnection.university.domain.QHostUniversity.hostUniversity;
88
import static org.springframework.util.StringUtils.hasText;
99

1010
import com.example.solidconnection.admin.dto.MentorApplicationResponse;
@@ -48,7 +48,7 @@ public class MentorApplicationFilterRepositoryImpl implements MentorApplicationF
4848
mentorApplication.id,
4949
region.koreanName,
5050
country.koreanName,
51-
university.koreanName,
51+
hostUniversity.koreanName,
5252
mentorApplication.universitySelectType,
5353
mentorApplication.mentorProofUrl,
5454
mentorApplication.mentorApplicationStatus,
@@ -77,9 +77,9 @@ public Page<MentorApplicationSearchResponse> searchMentorApplications(MentorAppl
7777
.select(MENTOR_APPLICATION_SEARCH_RESPONSE_PROJECTION)
7878
.from(mentorApplication)
7979
.join(siteUser).on(mentorApplication.siteUserId.eq(siteUser.id))
80-
.leftJoin(university).on(mentorApplication.universityId.eq(university.id))
81-
.leftJoin(region).on(university.region.eq(region))
82-
.leftJoin(country).on(university.country.eq(country))
80+
.leftJoin(hostUniversity).on(mentorApplication.universityId.eq(hostUniversity.id))
81+
.leftJoin(region).on(hostUniversity.region.eq(region))
82+
.leftJoin(country).on(hostUniversity.country.eq(country))
8383
.where(
8484
verifyMentorStatusEq(condition.mentorApplicationStatus()),
8585
keywordContains(condition.keyword()),
@@ -105,9 +105,9 @@ private JPAQuery<Long> createCountQuery(MentorApplicationSearchCondition conditi
105105

106106
if (hasText(keyword)) {
107107
query.join(siteUser).on(mentorApplication.siteUserId.eq(siteUser.id))
108-
.leftJoin(university).on(mentorApplication.universityId.eq(university.id))
109-
.leftJoin(region).on(university.region.eq(region))
110-
.leftJoin(country).on(university.country.eq(country));
108+
.leftJoin(hostUniversity).on(mentorApplication.universityId.eq(hostUniversity.id))
109+
.leftJoin(region).on(hostUniversity.region.eq(region))
110+
.leftJoin(country).on(hostUniversity.country.eq(country));
111111
}
112112

113113
return query.where(
@@ -128,7 +128,7 @@ private BooleanExpression keywordContains(String keyword) {
128128
}
129129

130130
return siteUser.nickname.containsIgnoreCase(keyword)
131-
.or(university.koreanName.containsIgnoreCase(keyword))
131+
.or(hostUniversity.koreanName.containsIgnoreCase(keyword))
132132
.or(region.koreanName.containsIgnoreCase(keyword))
133133
.or(country.koreanName.containsIgnoreCase(keyword));
134134
}

src/main/java/com/example/solidconnection/mentor/service/MentorMyPageService.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@
2323
import com.example.solidconnection.siteuser.repository.SiteUserRepository;
2424
import com.example.solidconnection.term.domain.Term;
2525
import com.example.solidconnection.term.repository.TermRepository;
26-
import com.example.solidconnection.university.domain.University;
27-
import com.example.solidconnection.university.repository.UniversityRepository;
26+
import com.example.solidconnection.university.domain.HostUniversity;
27+
import com.example.solidconnection.university.repository.HostUniversityRepository;
2828
import java.util.ArrayList;
2929
import java.util.List;
3030
import lombok.RequiredArgsConstructor;
@@ -40,7 +40,7 @@ public class MentorMyPageService {
4040

4141
private final MentorRepository mentorRepository;
4242
private final SiteUserRepository siteUserRepository;
43-
private final UniversityRepository universityRepository;
43+
private final HostUniversityRepository hostUniversityRepository;
4444
private final TermRepository termRepository;
4545
private final MentorApplicationRepository mentorApplicationRepository;
4646

@@ -52,7 +52,7 @@ public MentorMyPageResponse getMentorMyPage(long siteUserId) {
5252
.orElseThrow(() -> new CustomException(MENTOR_NOT_FOUND));
5353
Term term = termRepository.findById(mentor.getTermId())
5454
.orElseThrow(() -> new CustomException(TERM_NOT_FOUND));
55-
University university = universityRepository.findById(mentor.getUniversityId())
55+
HostUniversity university = hostUniversityRepository.findById(mentor.getUniversityId())
5656
.orElseThrow(() -> new CustomException(UNIVERSITY_NOT_FOUND));
5757
return MentorMyPageResponse.of(mentor, siteUser, university, term.getName());
5858
}

src/main/java/com/example/solidconnection/mentor/service/MentorQueryService.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
import com.example.solidconnection.siteuser.repository.SiteUserRepository;
2020
import com.example.solidconnection.term.domain.Term;
2121
import com.example.solidconnection.term.repository.TermRepository;
22-
import com.example.solidconnection.university.domain.University;
23-
import com.example.solidconnection.university.repository.UniversityRepository;
22+
import com.example.solidconnection.university.domain.HostUniversity;
23+
import com.example.solidconnection.university.repository.HostUniversityRepository;
2424
import java.util.ArrayList;
2525
import java.util.List;
2626
import java.util.Map;
@@ -38,15 +38,15 @@ public class MentorQueryService {
3838
private final MentoringRepository mentoringRepository;
3939
private final SiteUserRepository siteUserRepository;
4040
private final MentorBatchQueryRepository mentorBatchQueryRepository;
41-
private final UniversityRepository universityRepository;
41+
private final HostUniversityRepository hostUniversityRepository;
4242
private final RegionRepository regionRepository;
4343
private final TermRepository termRepository;
4444

4545
@Transactional(readOnly = true)
4646
public MentorDetailResponse getMentorDetails(long mentorId, long currentUserId) {
4747
Mentor mentor = mentorRepository.findById(mentorId)
4848
.orElseThrow(() -> new CustomException(MENTOR_NOT_FOUND));
49-
University university = universityRepository.findById(mentor.getUniversityId())
49+
HostUniversity university = hostUniversityRepository.findById(mentor.getUniversityId())
5050
.orElseThrow(() -> new CustomException(UNIVERSITY_NOT_FOUND));
5151
SiteUser mentorUser = siteUserRepository.findById(mentor.getSiteUserId())
5252
.orElseThrow(() -> new CustomException(MENTOR_NOT_FOUND));
@@ -77,14 +77,14 @@ private Slice<Mentor> filterMentorsByRegion(String regionKoreanName, Pageable pa
7777

7878
private List<MentorPreviewResponse> buildMentorPreviewsWithBatchQuery(List<Mentor> mentors, long currentUserId) {
7979
Map<Long, SiteUser> mentorIdToSiteUser = mentorBatchQueryRepository.getMentorIdToSiteUserMap(mentors);
80-
Map<Long, University> mentorIdToUniversity = mentorBatchQueryRepository.getMentorIdToUniversityMap(mentors);
80+
Map<Long, HostUniversity> mentorIdToUniversity = mentorBatchQueryRepository.getMentorIdToUniversityMap(mentors);
8181
Map<Long, Boolean> mentorIdToIsApplied = mentorBatchQueryRepository.getMentorIdToIsApplied(mentors, currentUserId);
8282
Map<Long, String> termIdToName = mentorBatchQueryRepository.getTermIdToNameMap(mentors);
8383

8484
List<MentorPreviewResponse> mentorPreviews = new ArrayList<>();
8585
for (Mentor mentor : mentors) {
8686
SiteUser mentorUser = mentorIdToSiteUser.get(mentor.getId());
87-
University university = mentorIdToUniversity.get(mentor.getId());
87+
HostUniversity university = mentorIdToUniversity.get(mentor.getId());
8888
boolean isApplied = mentorIdToIsApplied.get(mentor.getId());
8989
String termName = termIdToName.get(mentor.getTermId());
9090
MentorPreviewResponse response = MentorPreviewResponse.of(mentor, mentorUser, university, isApplied, termName);

0 commit comments

Comments
 (0)