내가 댓글 단 게시글을 조회할 때, @JPQL을 이용해서 다음과 같이 댓글 Repository에서 JPQL 사용해서 PostEntity를 반환하고 있는데, 이 방식이 혹시 문제가 있을까요? @Repository public interface CommentRepository extends JpaRepository<CommentEntity,Long> { @Query("SELECT DISTINCT c.post FROM CommentEntity c WHERE c.user.userId = :userId") Page<PostEntity> findPostByUserComment(@Param("userId") String userId, Pageable pageable); } 질문은 다음 3가지 입니다. 1. CommentRepository에서는 CommentEntity로만 반환하고 CommentEntity.getPost()를 통해 게시글을 가져오는 게 맞을까요? 아니면 위 코드대로 진행해도 괜찮을까요? 실무에서 선호하는 방식이 궁금합니다. 내가 댓글 단 게시글을 조회하는거니까, CommentRepository에서 메소드를 만드는 게 맞다 생각했는데 혹시 PostRepository에서 메소드를 구현하는게 더 좋을까요? 만약 위 코드처럼 한다면, 다대일이기 때문에 fetch join을 추가해서 pageable 같이 써도 문제 없는게 맞을까요?
예시 문제학생 테이블에서 성적이 80점 이상인 학생의 이름을 뽑아라.평소 쿼리를 짤때 보면 Select 이름 from 학생Where 성적 >=80;이렇게 해왔는데, 가끔 기출이나 이런걸 보면 답지에Select 이름 from 학생Having 성적 >=80;이런식으로 having 절을 유독 사용하는데,, 답은 똑같으나 꼭 having을 사용해야하는건지 헷갈립니다.선생님 강의가 여지껏 들은 강의중 최고에요.. 딴말 필요없이 필요한거만 긁어주시네요
이 문장이 이해가 안갑니다 ㅠㅠ arr배열이 가리키는 주소가 가지고 있는 값은 12면서 + 1을 하기 때문에 13이 나오는 것은 알겠는데 **를 2개쓰는 이유를 모르겠어요 포인터 변수도 메모리 주소(a - 자기가 위치한 곳)를 가지고 있고, 가지고 있는 값(b - 내가 가리키고 있는 주소)가 있습니다. 여기서 arr은 a-자기가 위치한 곳을 가리킵니다. 그것의 값을 arr 가져오라고 하니 b-내가 가리키고 있는 주소를 가지고 오게 되고, 거기에 다시 *을 씌우니 12를 가지고 오게 됩니다. 거기에 1을 더하면 13이 되죠. 그래서 최종값은 24 + 13인 37이 됩니다.
[파일 업로드 설정과 확인] 강의에서 DB에 아주 중요한게 아니라면 성능적인 부분때문에 DB에 파일을 저장하면 안된다고 하셨습니다. 클라우드를 이용하는게 일반적이라고 생각합니다만 한가지 궁금한게 있습니다. 만약 게시글이라는 엔티티에 대표 사진이 딱 한장 들어갈 수 있다고 한다면 아래와 같은 순서로 구현할 수 있겠다는 생각이 들었습니다. 이런 방법에 대해 어떻게 생각하시나요?? 애플리케이션 단에서 이미지 등록 -> 이미지 base64 인코딩 -> 인코딩 된 긴 문자열을 압축 -> 압축된 문자열을 RDB(MYSQL) 게시글 테이블에 게시물 대표이미지 (longtext 형)에 저장. 조회할때는 애플리케이션 단에서 별도로 압축된 문자를 원래 인코딩 된 문자열로 디코딩하는 로직 필요하겠지만 비용이 크지 않다고 생각했습니다.
영상 중 이 문제에서 처음에 부모 생성자를 호출하는데기본 생성자가 아닌 this(10) 의 값을 넣어 Par(int x) 호출을 해서 처음에 Par(int): 10, 그다음에 다시 원 생성자로 넘어와서 Par()를 프린트하는데, 기본 생성자가 아닌 아래 숫자넣은 int x를 받은 생성자를 먼저 돌리는 이유가 무엇인가요?저는 생성자를 따라서 처음에 Par()가 프린트 되는줄 알았습니다. 왜 그 아래 int값을 받는 생성자도 호출이 되는건가요? 조금 어렵네요 풀면 풀수록 더 어려우ㅓ 집니다 ㅜㅠ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 이 코드는 LinkedList<Integer> bucket = new LinkedList - > buket = bukets[hashIndex] 이렇게 이어지는 코드인건가요 ..? bukets이라는 linkedlist의 배열을 만들고 bukets 1 bukets 2 하나 하나에 linkedlist를 넣는 과정인건 알겠는데 저 buket은 어떻게 나온 코드인지 모르겠어요 ㅠㅠ
반복문 안에 if문 continue를 걸어서 홀수만 출력 되도록 코드를 연습했습니다.. while문은 출력이 되었는데, for문은 같은 방식으로 하면 안되는 이유가 뭘까요..? Run창에서 따로 오류가 뜨진 않지만, 아무것도 출력이 되지 않습니다... package loop; public class LoopEx { public static void main(String[] args) { // while문 정상 출력 int i = 0; while(i<=10) { if ((i % 2) == 0) { i++; continue; } System.out.println("while = " + i); i++; } // for문 출력되지 않음 for(int j = 0; j < 10; j++) { if((j % 2)==0) { j++; continue; } System.out.println("for = " + j); } } }
데이터베이스 저장 시점 현재 이미지 업로드 관련해서 프로젝트를 진행하고있는데, 이미지를 불러오기 위해 별도의 데이터베이스 저장이 필요해서 클라이언트에서 presigned URL을 사용하여 이미지 업로드가 완료된 후, 서버에 이미지 이름과 부가적인 정보를 보내주면 서버가 이를 데이터베이스에 저장하는 방식으로 구현하는게 맞을까요??