230401 TIL #48 Long id / 실전프로젝트 메모 / git restore

김춘복·2023년 4월 1일
0

TIL : Today I Learned

목록 보기
48/543
post-custom-banner

230401 Today I Learned

실전 프로젝트 이튿날. 오늘 하루동안 1차 목표로한 백엔드 코드를 다 짰다. 백엔드 쪽은 갈수록 탄력이 붙어서 속도가 잘나오는데 챌린지 팀이라 프론트가 없이 알아서 해야되는 구조라 벅차다. 강제 풀스택 전직을 할수도 있겠다..


Long id

  • 정말 기초적인 지식인데 지금까지 별 생각없이 Entity를 선언할 때 Long id로 썼는데 왜 long이 아니고 Long인지 궁금해졌다.

  • long 대신 Wrapper Type인 Long을 쓰는 이유는 null을 다룰 수 있기 때문이다. long을 쓸 경우 0은 표현 가능하지만 null(id가 없을 때)은 표현이 불가능하다. 반면 Long은 Wrapper Type이라 null을 표현할 수 있다.

  • id가 null이면 해당 Entity가 아직 영속화되지 않았다는 것을 나타낼 수 있다. 그래서 Long을 쓰면 영속성 컨텍스트에서 Entity를 관리하기 좋다.


프로젝트 메모

  • sql 쿼리 쓸때는 ""말고 ''로 문자열 감싸줘야 한다.
    ex) INSERT INTO EVENT VALUES (7,'imageurl', '올림픽체조경기장', 100000, '김장훈 콘서트');

  • Pageable pageable = PageRequest.of(page, size); 로 sort를 굳이 넣지 않아도 된다.

  • 일단 1차로 작성한 page 반환 쿼리. Event에서 조회하는데 Event가 가진 ShowTime의 List의 isAvailable의 값이 true인 값들만 가장 가까운 date 순으로 오름차순 정렬하는 쿼리이다. @OneToMany로 가진 showTimeList를 join으로 묶어 활용했다.

@Query("SELECT e FROM Event e JOIN e.showTimeList st WHERE st.isAvailable = true GROUP BY e.id ORDER BY MIN(st.date) ASC")
  Page<Event> findAllByAvailableOrderByShowTimeDate(Pageable pageable);

git restore

  • 현재 작업중인 브랜치에서 작업한걸 다 없에고 싶을 때 (내가 방금 한거 날리고 다른 사람꺼 pull받으려 하는데 에러가 뜰 때) 해당 경로에서 git bash를 open 후
git restore 파일명
  • 소스트리 사용중일경우 폐기 버튼을 누르면 된다.
profile
Backend Dev / Data Engineer
post-custom-banner

0개의 댓글