Skip to content

Commit 2e04a63

Browse files
committed
Fix[poll]:Long memberId
1 parent fc4e6a9 commit 2e04a63

File tree

6 files changed

+22
-24
lines changed

6 files changed

+22
-24
lines changed

backend/src/main/java/com/ai/lawyer/domain/poll/entity/PollVote.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,8 @@ public class PollVote {
2424
// Member와 OAuth2Member 모두 지원하기 위해 FK 제약 조건 제거
2525
// 애플리케이션 레벨에서 AuthUtil로 참조 무결성 보장
2626
// foreignKey 제약조건 비활성화 (ConstraintMode.NO_CONSTRAINT)
27-
@ManyToOne(fetch = FetchType.LAZY)
28-
@JoinColumn(name = "member_id", nullable = false, foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
29-
private Member member;
27+
@Column(name = "member_id", nullable = false)
28+
private Long memberId;
3029

3130
@ManyToOne(fetch = FetchType.LAZY)
3231
@JoinColumn(name = "poll_items_id", nullable = false, foreignKey = @ForeignKey(name = "FK_POLLVOTE_POLLOPTIONS"))

backend/src/main/java/com/ai/lawyer/domain/poll/repository/PollVoteRepository.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,20 @@
1212
import java.util.Optional;
1313

1414
public interface PollVoteRepository extends JpaRepository<PollVote, Long>, PollVoteRepositoryCustom {
15-
Optional<PollVote> findByMember_MemberIdAndPoll_PollId(Long memberId, Long pollId);
16-
void deleteByMember_MemberIdAndPoll_PollId(Long memberId, Long pollId);
17-
List<PollVote> findByMember_MemberIdAndPollOptions_PollItemsId(Long memberId, Long pollItemsId);
18-
List<PollVote> findByMember_MemberId(Long memberId);
15+
Optional<PollVote> findByMemberIdAndPoll_PollId(Long memberId, Long pollId);
16+
void deleteByMemberIdAndPoll_PollId(Long memberId, Long pollId);
17+
List<PollVote> findByMemberIdAndPollOptions_PollItemsId(Long memberId, Long pollItemsId);
18+
List<PollVote> findByMemberId(Long memberId);
1919

2020
/**
2121
* member_id로 투표 내역 삭제 (회원 탈퇴 시 사용)
2222
* Member와 OAuth2Member 모두 같은 member_id 공간을 사용하므로 Long 타입으로 삭제
2323
*/
2424
@Modifying
25-
@Query("DELETE FROM PollVote pv WHERE pv.member.memberId = :memberId")
25+
@Query("DELETE FROM PollVote pv WHERE pv.memberId = :memberId")
2626
void deleteByMemberIdValue(@Param("memberId") Long memberId);
2727

28-
boolean existsByPollAndMember(Poll poll, Member member);
29-
30-
@Query("SELECT v.member.memberId FROM PollVote v WHERE v.poll = :poll")
28+
boolean existsByPollAndMemberId(Poll poll, Long memberId);
29+
@Query("SELECT v.memberId FROM PollVote v WHERE v.poll = :poll")
3130
List<Long> findMemberIdsByPoll(@Param("poll") Poll poll);
3231
}

backend/src/main/java/com/ai/lawyer/domain/poll/repository/PollVoteRepositoryImpl.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ public List<PollStaticsDto> countStaticsByPollOptionIds(List<Long> pollOptionIds
9494
pollVote.count())
9595
.from(pollVote)
9696
.join(pollVote.getPollOptions(), pollOptions)
97-
.join(pollVote.getMember(), member)
97+
.join(member).on(pollVote.getMemberId().eq(member.getMemberId()))
9898
.where(pollOptions.getPollItemsId().in(pollOptionIds))
9999
.groupBy(pollOptions.getPollItemsId(), member.getGender(), member.getAge())
100100
.fetch();
@@ -147,7 +147,7 @@ public List<AgeGroupCountDto> getOptionAgeStatics(Long pollId) {
147147
pollVote.count())
148148
.from(pollVote)
149149
.join(pollVote.getPollOptions(), pollOptions)
150-
.join(pollVote.getMember(), member)
150+
.join(member).on(pollVote.getMemberId().eq(member.getMemberId()))
151151
.where(pollOptions.getPoll().getPollId().eq(pollId))
152152
.groupBy(pollOptions.getOption(),
153153
new com.querydsl.core.types.dsl.CaseBuilder()
@@ -177,7 +177,7 @@ public List<GenderCountDto> getOptionGenderStatics(Long pollId) {
177177
pollVote.count())
178178
.from(pollVote)
179179
.join(pollVote.getPollOptions(), pollOptions)
180-
.join(pollVote.getMember(), member)
180+
.join(member).on(pollVote.getMemberId().eq(member.getMemberId()))
181181
.where(pollOptions.getPoll().getPollId().eq(pollId))
182182
.groupBy(pollOptions.getOption(), member.getGender())
183183
.fetch();

backend/src/main/java/com/ai/lawyer/domain/poll/service/PollServiceImpl.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -112,17 +112,17 @@ public PollVoteDto vote(Long pollId, Long pollItemsId, Long memberId) {
112112
throw new ResponseStatusException(HttpStatus.FORBIDDEN, "투표 권한이 없습니다.");
113113
}
114114
// 기존 투표 내역 조회
115-
var existingVoteOpt = pollVoteRepository.findByMember_MemberIdAndPoll_PollId(memberId, pollId);
115+
var existingVoteOpt = pollVoteRepository.findByMemberIdAndPoll_PollId(memberId, pollId);
116116
if (existingVoteOpt.isPresent()) {
117117
PollVote existingVote = existingVoteOpt.get();
118118
if (existingVote.getPollOptions().getPollItemsId().equals(pollItemsId)) {
119119
throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "이미 투표하셨습니다.");
120120
} else {
121-
pollVoteRepository.deleteByMember_MemberIdAndPoll_PollId(memberId, pollId);
121+
pollVoteRepository.deleteByMemberIdAndPoll_PollId(memberId, pollId);
122122
PollVote pollVote = PollVote.builder()
123123
.poll(poll)
124124
.pollOptions(pollOptions)
125-
.member(member)
125+
.memberId(memberId)
126126
.build();
127127
PollVote savedVote = pollVoteRepository.save(pollVote);
128128
Long voteCount = pollVoteRepository.countByPollOptionId(pollItemsId);
@@ -140,7 +140,7 @@ public PollVoteDto vote(Long pollId, Long pollItemsId, Long memberId) {
140140
PollVote pollVote = PollVote.builder()
141141
.poll(poll)
142142
.pollOptions(pollOptions)
143-
.member(member)
143+
.memberId(memberId)
144144
.build();
145145
PollVote savedVote = pollVoteRepository.save(pollVote);
146146
Long voteCount = pollVoteRepository.countByPollOptionId(pollItemsId);
@@ -441,7 +441,7 @@ private PollDto convertToDto(Poll poll, Long memberId, boolean withStatistics) {
441441
Long voteCount = pollVoteRepository.countByPollOptionId(option.getPollItemsId());
442442
boolean voted = false;
443443
if (memberId != null) {
444-
voted = !pollVoteRepository.findByMember_MemberIdAndPollOptions_PollItemsId(memberId, option.getPollItemsId()).isEmpty();
444+
voted = !pollVoteRepository.findByMemberIdAndPollOptions_PollItemsId(memberId, option.getPollItemsId()).isEmpty();
445445
}
446446
List<PollStaticsDto> statics = null;
447447
if (withStatistics && poll.getStatus() == Poll.PollStatus.CLOSED) {
@@ -539,7 +539,7 @@ public void validatePollCreate(PollCreateDto dto) {
539539

540540
@Override
541541
public void cancelVote(Long pollId, Long memberId) {
542-
pollVoteRepository.findByMember_MemberIdAndPoll_PollId(memberId, pollId)
542+
pollVoteRepository.findByMemberIdAndPoll_PollId(memberId, pollId)
543543
.ifPresent(pollVoteRepository::delete);
544544
}
545545
}

backend/src/main/java/com/ai/lawyer/domain/post/service/PostDummyService.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ public int dummyVote(Long postId) {
104104
PollOptions selectedOption = pollOptionsList.get(random.nextInt(pollOptionsList.size()));
105105
PollVote pollVote = PollVote.builder()
106106
.poll(post.getPoll())
107-
.member(member)
107+
.memberId(member.getMemberId())
108108
.pollOptions(selectedOption)
109109
.build();
110110
pollVoteRepository.save(pollVote);
@@ -136,7 +136,7 @@ public int dummyVote1Option(Long postId) {
136136
if (!votedMemberIdSet.contains(member.getMemberId())) {
137137
PollVote pollVote = PollVote.builder()
138138
.poll(post.getPoll())
139-
.member(member)
139+
.memberId(member.getMemberId())
140140
.pollOptions(firstOption)
141141
.build();
142142
pollVoteRepository.save(pollVote);
@@ -168,7 +168,7 @@ public int dummyVote2Option(Long postId) {
168168
if (!votedMemberIdSet.contains(member.getMemberId())) {
169169
PollVote pollVote = PollVote.builder()
170170
.poll(post.getPoll())
171-
.member(member)
171+
.memberId(member.getMemberId())
172172
.pollOptions(secondOption)
173173
.build();
174174
pollVoteRepository.save(pollVote);

backend/src/main/java/com/ai/lawyer/domain/post/service/PostServiceImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,7 @@ public Page<PostDto> getClosedPostsPaged(Pageable pageable, Long memberId) {
300300
}
301301

302302
private Page<PostDto> getMyVotedPostsPagedByStatus(Pageable pageable, Long memberId, Poll.PollStatus status) {
303-
List<PollVote> votes = pollVoteRepository.findByMember_MemberId(memberId);
303+
List<PollVote> votes = pollVoteRepository.findByMemberId(memberId);
304304
List<Long> pollIds = votes.stream().map(v -> v.getPoll().getPollId()).distinct().toList();
305305
Page<Post> posts = (status == null)
306306
? postRepository.findByPoll_PollIdIn(pollIds, pageable)

0 commit comments

Comments
 (0)