묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
상속관계의 관리
강의에서는 수업을 위해 다운캐스팅을 사용하셨다고 하셨습니다.그러면 상속관계에서는 book,Album,Movie관련 서비스를 만들고BookForm, AlbumForm, MovieForm을 만들고@Mapping도 book, album, movie에 대해서 다 만들고대신에 repository만 itemrepository로 하나로 해서 관리하는 방식을 사용해야한다고 생각합니다.제가 생각한 것이 괜찮은 방법이 맞는 지 궁금하고 아니라면 어떻게 해야하는 지 궁금합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
14분대 정도에서의 설명과 관련하여 질문이 있습니다!
영한님께서 컬렉션을 처음에 만들어두고 바꾸지 말라고 하신 뜻이 컬렉션의 종류를 바꾸지 말라고 하신건가요..?아니면 컬렉션의 값을 처음에 생성할 때 한 번 만들어두고 그 다음에 건드리지 말라고 하신건가요?
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
cascade=ALL, orphanRemoval=true 관련 질문
안녕하세요.혼자 고민하고 생각 해보다 해결이 되지 않아 문의드리러 왔습니다 ㅠㅠ해당 수업을 듣고, 사이드 프로젝트를 수행하면서 orphanRemoval을 사용해보게 되었습니다.대략적인 엔티티간의 관계는 다음과 같습니다.총 4개의 엔티티가 각각 다대일 매핑으로 이루어져 있는데요.각 엔티티의 정보는 다음과 같습니다.엔티티 A : 유저엔티티 B : 글엔티티 C : 글에 포함되는 정보엔티티 D : 엔티티 C에 포함되는 정보문제는 엔티티 B까지만 cascade=ALL, orphanRemoval=true가 적용된다는 것입니다..ㅠㅠ차이가 있다면, 엔티티 A는 유저의 정보라서, 항상 저장이 되어있는 것을 꺼내어와서 사용한다는 것이고(저장을 회원가입 로직에서만 수행합니다.), 엔티티 B, C, D는 글 작성 시 모두 새로 생성하여 사용한다는 점입니다.저는 엔티티B 삭제 로직에서, 엔티티A의 List에서 엔티티B를 remove 하면 B, C, D가 모두 삭제되는 것을 기대했는데, 전혀 삭제가 되지 않습니다 ㅠ (List에서 엔티티B가 제거는 됩니다..)오히려 엔티티A의 List에서 엔티티B을 remove하고, 추가적으로 엔티티B의 리포지토리에서 엔티티 B를 삭제해야만 비로소 삭제가 완료됩니다.기능 자체를 구현은 했지만, 이렇게 동작하는 원인을 알고싶어서, 여기저기 찾아보다가 답을 찾지 못해 이곳에 질문 글을 남기게 되었습니다 ㅠㅜ관련 코드는 아래 깃허브 리포지토리에 있습니다.엔티티 리포지토리https://github.com/SeolYoungKim/siders/tree/oauth2login/src/main/java/com/example/siderswebapp/domain삭제 로직 리포지토리https://github.com/SeolYoungKim/siders/tree/oauth2login/src/main/java/com/example/siderswebapp/service/post
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
new Integer가 좋지 않은 이유
안녕하세요 궁금한게 있어 글 남깁니다강의 7:30쯤에서 Integer.valueOf 해도 되지만 new Integer를 사용하겠다, 요즘은 new Integer가 별로 안 좋다고 한다~ 라고 말씀하셨는데요new Integer가 좋지 않은 이유가 궁금합니다 나름 열심히 구글링 해보았는데 정확한 이유를 찾지 못해 여쭤봅니다 ㅠㅠ
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Hierarchical style에 대해서 질문이 있습니다!!!
강의 내용 중에 타임리프에서 include style보다 Hierarchical style이 중복 제거도 할 수 있고 실용적이라고 하셔서 제가 공부를 하려고 찾아보는데 궁금한게 몇가지 있어서 질문드립니다.강의에서 예제들이 많다고 하셨는데 타임리프 홈페이지에 들어가서 찾아보니 Hierarchical style에 대한 설명이 있는 홈페이지에 2. Example Application에 들어가면 예제들이 있는 것 인가요??제가 또 Hierarchical style에 대해서 찾아보다 보니 Thymeleaf Layout Dialect에 대한 설명들이 많이 나오던데 혹시 Hierarchical style layout이랑 Layout Dialect랑 같은 의미인가요? 아니면Hierarachical이 Layout Dialect를 쓴다는 의미인건가요...?언제나 친절하게 답변해주셔서 감사합니다!
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
왜 Team 엔티티 조회 쿼리가 발생되는지 잘 모르겠습니다.
안녕하세요, 강의 잘 듣고 있습니다.(아래 내용은 @ManyToOne의 default 설정 값인 fetch가 EAGER일 때 입니다...)해당 영상 5분 7초 때의 콘솔을 보면,Team 조회 쿼리가 추가로 한 번 더 발생되고 있습니다.하지만 jpql쿼리를 보면,"select m from Member m inner join m.team t"즉 Member 엔티티와 연관된 Team 엔티티를 inner join 하여 같이 한 번에 가져오는 쿼리입니다."select m from Member m" 이라고 jpql을 작성했으면 당연히 연관된 Team 엔티티를 조회하는 select 쿼리가 별도로 실행되는 게 맞지만, inner join으로 작성했기 때문에 별도의 Team 엔티티를 조회하기 위한 select 쿼리가 발생할 필요가 없는 것 같은데, 추가로 select 쿼리가 발생하는 부분이 잘 이해가 되지 않습니다.답변 미리 감사드립니다.
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
12분09초
return new Result(collect);Result<T> 리절트에 <>안해주고 위에처럼 그냥 써도 상관없나요?어느 블로그에서 "간혹가다 책에서 Object형을 암시적으로 받는다고 적혀있는 경우가 있는데 단언컨데 Object형을 받지 않습니다."라고 나와있는데 굳이 이렇게 코드를 짠 이유가 뭘까요??
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
fetch 조인과 eager(즉시로딩) 관련
fetch 조인은 결국 즉시로딩 처럼 동작한다그런데, fetch = EAGER 즉시로딩으로 설정하지 않는 이유는 아예 로딩 설정을 저렇게 해버리면 fetch 조인이 필요하지 않을 경우에도 모든 쿼리가 한 번에 날아가서 리소스 낭비임제가 생각하는것이 맞을까요? 즉시로딩은 연관관계로 맺어진 엔티티를 실제 사용할 때만 DB로 쿼리를 날리는것이 아니라 처음부터 모두 연관 엔티티를 가져와서 쿼리를 날리는것으로 이해를 했는데요fetch 조인 역시 같은 동작을 하는것같아서 단순하게 즉시 로딩을 설정해버리면 안되나? 라는 의문이 들었습니다.아니면 제가 즉시로딩과 fetch 의 동작 기전을 아직 잘못 이해하고 있는것일까요?
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
세타조인
세타 조인과 크로스 조인이 같은 건가요? 블로그에 잘못된 정보가 많아서 여기에 여쭤봅니다...
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
파라미터 바인딩
강의에서는 파라미터 바인딩을 이름 기반으로 해라 정도만 나와있습니다.그런데 , 이 파라미터 바인딩이 무엇이고, 이걸 왜 쓰는지 이런 설명이 없다보니 이해가 되지 않습니다. 파라미터 조인으로 뭘 하는 건가요?ㅠㅠList<Member> resultList = em.createQuery("select m from Member m inner join m.team t " + "where t.name = :teamname", Member.class) .getResultList();
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
innodb 관련 에러
안녕하세요!뒤늦게 강의를 수강하고 있습니다.현재 mariadb docker build 후에 docker run을 하게 되면 아래와 같은 에러가 발생합니다.구글링을 해도 방법을 찾을 수가 없어요 ㅜㅜ[Dockerfile][Docker logs mariadb]어떻게 해결해야 할까요?...
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
9분 9초 쯤에 커맨드 라는게 무슨 뜻인지 궁금합니다.
안녕하세요 정말 기초적인? 질문이 있습니다...구글링을 해도 원하는 내용이 잘 안보여서 질문을 드립니다!!!다름이 아니라 강의의 9분 9초쯤부터 말씀하시는 커맨드 성이여서 거의 쓰기만 있다고 한다에서쓰기만 있는 코드는 무슨 뜻인지 알겠는데 커맨드성이라는게 어떤 것을 뜻하는 건지 궁금해서 질문 드립니다.혹시 커맨드라는 것이 제가 아는 특정한 기능을 실행하려고 보내는 신호? 코드? 그것을 뜻하는 건가요???그리고 제가 질문이 좀 많은데 매번 답변 잘해주셔서 너무 감사드립니다ㅠㅠ
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
전체 주문 가격
pdf파일 50페이지에 전체주문가격조회에서괄호안에 "실무에서는 주로 주문에 전체 주문 가격 필드를 두고 역정규화 한다."라고 써져있는데 역정규화가 어떻게 되는건가요??
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
강의와 관련하여 궁금한게있습니다~!
엔티티로 직접 요청을 처리하지말고 별도의 dto를 만들어서 요청을 처리하는게 좋다고말씀해주셨는데! 실무의 경우 api별로 dto를 만들때 내부클래스로 선언해서 사용할까요? 아님 패키지에 따로 dto를 만들어서사용할까요!!그리고 추가적으로 혹시 선생님 spring mvc강좌 restapi관련된 강좌가있을까요!?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
11분06초 @Valid
@Valid를 써야 @NotEmpty가 적용 되는건가요?쓰지않으면 @NotEmpty는 그냥 의미없는건가요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
오류입니다 ㅠㅠ
에 있는 파일에서 알려주신 것 처럼 MVCC=TRUE를 넣었음에도 발생하는 오류입니다h2는 1.4.199 버전입니다
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
MEMBER_SEQ를 2번 호출 하는 이유
처음 호출 하면 51개로 맞추고 그 다음부터, 메모리에서 사용한다고 하는데 이렇게 하는 이유가 무엇인가요 ? 처음 호출 할때 50개를 미리 세팅 하고 1번부터 사용하면 안되나요???
-
해결됨실전! Querydsl
상속관계 매핑을 지양해야 하는가?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]https://inf.run/P9aM안녕하세요 영한님, 위 질문 및 답변에 대하여 몇가지 추가적으로 질문이 있습니다.저도 김문근님의 고민과 같은 고민을 하고 있었는데 JPA강의에서도 관련된 질문이 있는지 계속 찾아보았습니다만 속이 뻥 뚫리는 답이 없어서 여기까지 왔습니다.그런데 한가지 영한님이 계속 말씀하시는 부분은 "실무에서는 상속관계 매핑을 꼭 필요할 때 부분적으로 사용한다" 이었습니다. 그렇다면 상속관계 매핑을 실무에서 잘 사용하지 않는 이유는 무엇인가요?위 예제처럼 상속관계 매핑(싱글테이블)전략을 사용하지 않고 한 테이블에 데이터들이 들어간다면 비어있는 값은 null로 되는 것은 상속관계 매핑과 다를게 없을 것 같은데 이 부분에서의 이점은 무엇일까요? 오늘 하루 이 고민하다 시간이 훌쩍 지나갔네요... 영한님과 JPA의 시작과 끝을 함께하고 싶습니다.강의 정말 감사합니다!!
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
프록시 객체의 초기화
프록시객체가 만들어지면 1차캐시에 들어가고 그 상태에서 초기화를 하면 실제 entity가 만들어져서 프록시 맴버변수로 들어가는것으로 이해했는데 맞나요??
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
dto와 도메인의 업데이트 메소드를 만들어 보았습니다. 이렇게 하는게 맞는건가요?
강의에서 말씀하신대로 만들어 보았습니다.이렇게 하는것이 맞는건지 궁금하여 질문드리게 되었습니다.Book 도메인UpdateItemDtoItemServiceItemController항상 감사합니다.