이 문제 답 모르면 제발 JPA 쓰지 마세요. 공부를 하거나. feat 서연

  Рет қаралды 51,552

백기선

백기선

Күн бұрын

Пікірлер: 103
@성남총각
@성남총각 3 жыл бұрын
하이버네이트는 DB설계가 잘되어 있으면 정말 좋지만... 그렇게 실력있는 DA도 드물 뿐더러 고도화가 태반인 우리나라 SI에서 10년전에 설계된 DB에 컬럼, 테이블, 프로시져 덕지덕지 추가하고... 그러다 보면 테이블 5개이상 조인은 기본이죠. 지금은 하이버네이트가 어떨지 모르겠는데 제가 7년전쯤에 사용할때는 서브쿼리, 조인 등에 사용하기가 너무 힘들었어요. 그러다 결국엔 마이바티스로 바꿨지요.
@kasperdolbergeu
@kasperdolbergeu 3 күн бұрын
정답 제출: 연관관계의 주인 쪽에서만 수정 가능(mappedBy의 반대편), 보통 연관관계의 주인은 1:N에서 N쪽에 설정함. 쓰고 이어시청하겠숨다
@머찐경호
@머찐경호 4 жыл бұрын
JPA 처음 공부할때도 느낀건데 이문제는 데이터 기반으로 생각하면 간단한 문제인데 이걸 객체기반으로만 생각하면 좀 고민이 될수도 있죠 ㅋㅋ.
@lyra9409
@lyra9409 3 жыл бұрын
기본적으로 mapped by 는 연관관계의 주인이 되지못하는데 거기에다가 값을 넣으니 저렇게 되지않을까요? 연관관계의 주인은 외래참조키를 가지고있는 Book 이 되어야 하고 Book 을 통해서만 외래참조키를 쓰기/변경이 가능한데 말이죠;;
@LegWorkout
@LegWorkout 10 ай бұрын
add() 메서드에는 bookStore 에 book 만 추가해줘서 그런거아닌가요 ? void add(Book book){ this.books.add(book); book.setbookStore(this); } 뭔가 이렇게 바꾸면 될꺼같아요
@dowonhwang
@dowonhwang Жыл бұрын
난 또 뭐 대단한 개발 스킬이라고...JPA를 쓰라 쓰지 말라는 거지? 다음 강좌 보니깐 변수에 스택 포인터 연결 안되서 그렇다고 하는 거 보고.. 기가 차네..우연히 유투브 알고리즘에 뭐지하고 들어왔는데.. 무슨 강좌 동영상인듯한데.. ORM 프렘 하나 안다고 엄청 건방떠네... 개발 세계에는 님보다 펄펄 날고 날고 나는 사람이 수두룩합니다...
@madhandz5
@madhandz5 Жыл бұрын
저랑 생각이 맞으시는분이 여기 계시네요.
@gamja-l2w
@gamja-l2w 2 ай бұрын
음. 제가 보기엔 님이 더 건방 떠는 듯. 조금 안다고 대단한 스킬이니 뭐니 하는데~ 이 영상의 사람 발끝도 못 따라가는 사람이 대단하지 않은 거라고 건방떠는 것처럼 보임. 이 사람 이력보면 내용 가지고 딴지 걸 수 없을텐데 ㅋㅋ
@linker-r5k
@linker-r5k 2 ай бұрын
개인적으로 jpa를 사용 안하는데도 포인터를 얕은 지식 정도로 사용하는데 다이렉트12 언리얼을 개고수인데용 라는거같네요.
@viivii6850
@viivii6850 2 жыл бұрын
제목에 끌려서 들어왔는데 애기가 너무너무 귀여워서 무한반복🥰
@otwmoo
@otwmoo 5 жыл бұрын
도발적인 제목에 넘어와서 보긴 봣는데, 이거 모르면 정말 쓰면 안될 거 같은거는 맡긴 맞는듯..
@keesun.b
@keesun.b 5 жыл бұрын
다소 자극적이긴 했지만 그래야 한다고 생각합니다.
@822-q8j
@822-q8j 9 ай бұрын
아... 처음엔 틀렸고 두번째에 맞았는데 jpa써도 되나요? ㅋㅋㅋㄱㅋ
@JSvlog
@JSvlog 5 жыл бұрын
따님 너무 귀여워요 😍 음... 어노테이션 하나가 바로 떠오르긴하는데 정답을 기다려봐야겠군욤 ㅎㅎ🤔 얼마전에 슬랙에도 비슷한 스레드가 있었던 것 같은데!
@keesun.b
@keesun.b 5 жыл бұрын
떙!! ㅋㅋ추가적인 어노테이션은 없어도 됩니다.
@JSvlog
@JSvlog 5 жыл бұрын
앗 네네 맞네욬ㅋㅋㅋㅋ 어노테이션 추가가 아니라 이미 달린 어노테이션에 속성 추가... 정답 확인하고 인프런 강의 구매하러 갑니다 🧐
@keesun.b
@keesun.b 5 жыл бұрын
또 땡!! 몇시간 뒤에 퇴근하니까 곧 올려드리겠습니다. ㅋㅋㅋ
@JSvlog
@JSvlog 5 жыл бұрын
자! 강의 구매하러 갑니다. ㅋㅋㅋㅋㅋ 😢
@Bkbkbkbkbkbkbkbkbkbk
@Bkbkbkbkbkbkbkbkbkbk 2 жыл бұрын
연관관계의 주인
@빈-s8m4h
@빈-s8m4h 2 жыл бұрын
스프링 영상에서는 혼났지만 이번에는 정답을 맞췄습니다ㅎㅎ 늘 좋은 영상 감사드립니다
@양태호a
@양태호a 5 жыл бұрын
따님 너무 귀엽네요 ㅋㅋㅋㅋㅋ
@keesun.b
@keesun.b 5 жыл бұрын
ㅋㅋㅋ감사합니다.
@헹-w6f
@헹-w6f 2 жыл бұрын
안녕하세요, 궁금한 게 있습니다. JPA에서 FK가 PK로 매핑되었는데, 해당 컬럼이 null이 허용가능하게 하고싶은데, FK 제약조건 오류가 나더라구요 혹시 관련한 내용에 대해 아시나요?
@이동준-p3i
@이동준-p3i Жыл бұрын
영상 초반에 나오는 얘기가 너무 귀엽네요 ㅋㅋㅋㅋ
@maxjang
@maxjang 2 жыл бұрын
기선님 안녕하세요. 항상 영상 잘 보고 있습니다. 3년 전 글이지만 지금 알고리즘 타서 댓글답니다. 3년전 스무살 때 고등학교 졸업후에 취업해서 하다가 JPA 사용하면서 겪은 난관이네요.. 공부 하라는 말씀이 딱 와닿습니다.. 이거 모르면 왜 안들어가는지 몰라서 쩔쩔맵니다 ManyToOne n:1만 쓰다가 양방향으로 ManyToOne, OneToMany로 서로를 연관 사켜주려고 하는데 양방향으로 정작 표기를 안해뒀네요 ㅋㅋㅋㅋ 3년 넘게 공부하면서 부딪친 난관들의 결실을 맺는 느낌이 들었습니다.. 전 공부한다고 느끼고 했지만 겪은 시행착오들로 익혔지만 다른 분들은 공부하시면서 미리 익히시면 좋을것같습니다..(고생 안하시려면..) 감사합니다!
@seol1052
@seol1052 5 жыл бұрын
기선님 웃으실때 디게 행복하게 웃으세요 딸바보 실듯하네요 PS ..... mybatis 만세
@keesun.b
@keesun.b 5 жыл бұрын
만쉐이!!
@homies5593
@homies5593 Ай бұрын
mybatis 쓰겠습니다.
@가위-b9p
@가위-b9p 3 жыл бұрын
연관관계의 주인은 Book인데 BookStore 에 Book을 넣어서 그런것 같습니다!
@keesun.b
@keesun.b 3 жыл бұрын
정답!
@whereismycheese5481
@whereismycheese5481 4 жыл бұрын
따님 덕에 하루 시작이 상큼해졌습니다:)
@뿡뿡이-e8v
@뿡뿡이-e8v 10 ай бұрын
set을 안했으니 안들어오는게 당연한거 아닌가
@bogeun123
@bogeun123 2 жыл бұрын
잘 가~ 하시니까 엉~~ 하면서 가는게 너무 귀엽다 ㅋㅋ
@kionisrc
@kionisrc 4 жыл бұрын
네 저는 JPA 잘 사용하겠습니다. 좋은 퀴즈입니다.
@josso2036
@josso2036 4 жыл бұрын
인트로가 맘에 듭니다>.
@LongboardSalgot
@LongboardSalgot 5 жыл бұрын
프론트 엔드로서 벽넘어 보는듯한 기분이지만.. 잘보고있습니다.. 개발자로 넘어가기 위한 서적 추천받을수 있을까여?
@keesun.b
@keesun.b 5 жыл бұрын
프론트 개발자에서 백엔드 개발자로 넘어가기 위한 서적이요? 글쎄요.. 서버쪽이니까 아무래도 자바나 Node.js 그리고 그 위에 올라가는 프레임워크들 공부하시면 좋치 않을까 싶네요. JPA도 여러 곳에서 쓰긴 하지만 100% 쓰이고 있는건 아니라서.. 막상 쓰는 팀에 들어가게되면 그때 공부하는게 좋을거 같습니다.
@cogidtjr
@cogidtjr 2 жыл бұрын
강의는 좋습니다 그런데 제목이 어그로라..
@예압-p3j
@예압-p3j 3 жыл бұрын
정답 공개해주시는 오늘은 언제일까요 !!! 댓글에 정답이 안보입니다~!@~!@
@tv-to1tb
@tv-to1tb 5 жыл бұрын
🤔 jpa 알못인데... (오답주의) add method 안에서 파라미터로 받은 북을 add 하기전에 북스토어 키를 북에다가 set하도록 하면?! - sql 직접짜는게 편한 옛날회사개발자
@twicethis
@twicethis 3 ай бұрын
이 분은 왤케 늘 화가 나있어요?
@s-jl9403
@s-jl9403 2 жыл бұрын
어노테이션으로 해결할 수 있다에 한표 겁니다 ㅋㅋ
@Iam짱구
@Iam짱구 3 жыл бұрын
감사합니다. 계속 쓰겠습니당...
@hohoji6153
@hohoji6153 3 жыл бұрын
북쪽이 연관관계 주인이면 다대일 양방향 관계 아닌가요??
@후웻
@후웻 5 жыл бұрын
하이버네이트를 공부해본적이 없는데 괜시리 궁금한게...집가서 해봐야겠네요
@keesun.b
@keesun.b 5 жыл бұрын
답은 오늘 공개해 드릴께요.
@akma345
@akma345 5 жыл бұрын
전 최근에 티아카데미 김영한님 강의에도 잘나옵니다
@keesun.b
@keesun.b 5 жыл бұрын
맞아요. 저도 그 강좌 본거 같습니다.
@dogoori
@dogoori 5 жыл бұрын
제가 생각하는게 맞는지 느무느무 궁금합니다 언제 다음 영상 나올까요~
@keesun.b
@keesun.b 5 жыл бұрын
오늘 올려드릴께요.
@AI추종자
@AI추종자 5 жыл бұрын
스프링 백선생님 강좌를 이미 들어서 그런가 보자마자 머리에 딱 정답이 생각나네요👍👍
@keesun.b
@keesun.b 5 жыл бұрын
강좌 잘 들어주셔서 감사합니다. 보고 나서도 잘 모르시면 제가 슬퍼요ㅋㅋ
@ubitoffee
@ubitoffee 5 жыл бұрын
선댓글 후감상!
@ubitoffee
@ubitoffee 5 жыл бұрын
아직 갈길이 멀은듯 하니 총총 사라집니다
@keesun.b
@keesun.b 5 жыл бұрын
ㅋㅋㅋ댓글 감사합니다. 정답은 다음 영상에서 확인해 주세요.
@GeunChangAhn
@GeunChangAhn 5 жыл бұрын
이야 조마조마하다가 테스트 코드 보고 앗 이거! 그거! 알았네요 ^^선행학습의 힘 ㅋㅋ
@keesun.b
@keesun.b 5 жыл бұрын
이건 정말 필수에요. 2차 캐싱 이런건 나중에 성능 향상 시킬 때 공부해서 적용해도 되는건데 이건 정말 알고 써야되요.
@GeunChangAhn
@GeunChangAhn 5 жыл бұрын
@@keesun.b 네. 강조하시니 다시 보고 확실히 정리해야겠네요. 이런 퀴즈도 동기부여가 될 수 있네요^^ 감사합니다~
@kindjoo84
@kindjoo84 5 жыл бұрын
답이 어떨지 기대되네요 ㅋㅋ
@keesun.b
@keesun.b 5 жыл бұрын
답은 오늘 공개하겠습니다.
@sangwoobae8973
@sangwoobae8973 5 жыл бұрын
많은 하이버네이트 관련 서적중에 가장 먼저 보면 좋을 책 한권만 추천드려요!! (한글로....)
@hanyoungjeong8051
@hanyoungjeong8051 5 жыл бұрын
반대로 Book에 setBookStore를 한다면? ㅋㅋ
@keesun.b
@keesun.b 5 жыл бұрын
정답
@하누모카
@하누모카 5 жыл бұрын
크 이번 주말에 JPA 달려야지
@keesun.b
@keesun.b 5 жыл бұрын
JPA 달리세요~
@okane7255
@okane7255 2 жыл бұрын
부럽다
@jasonpark6381
@jasonpark6381 5 жыл бұрын
Coz you are my girl ~
@keesun.b
@keesun.b 5 жыл бұрын
yeah~ my girl~
@OOJOO50
@OOJOO50 5 жыл бұрын
논리적으로 가능하나 물리적으로 불가능! ERD에서 두 테이블간의 다대다
@keesun.b
@keesun.b 5 жыл бұрын
음.. 글쎄요 ㅋㅋ
@힙합은안멋져-v2r
@힙합은안멋져-v2r 3 жыл бұрын
하이버네이투!
@kkssrcn
@kkssrcn 4 жыл бұрын
연관관계 주인이 아닌곳에 set을 햇네용
@evan2434
@evan2434 5 жыл бұрын
안녕하세요 기선님! 좋은 영상 감사드립니다! 아직 강좌를 듣진 않았지만 처음 JPA나왔을때 결제를 했는데요, 지금 제가 스프링 부트 개념과 활용하고 JPA 2개는 결제를 했는데, 사실 스프링 핵심기술이랑, MVC가 나중에 나와서, 이거 먼저 듣는게 좋을거 같아서 결제 하려고 하는데요, 핵심기술이랑 MVC 결제 할때 기존에 샀던 강좌들 있으면 할인이 되어야 하는거 아닌가요?? 빨리 사서 듣고 싶긴 한데 재정적으로 넉넉하지 않아서 문의 드립니다 MVC는 2월 오픈기념 30%할인이 있지만, 2월에는 못살거 같아서요
@keesun.b
@keesun.b 5 жыл бұрын
음.. 맞아요 제 강좌들 연계 쿠폰(자동 적용)으로 20% 할인이 적용 되야 할텐데요. 결제 화면으로 넘어가면 자동으로 적용된다고 알고 있거든요. 안되시면 인프런에 문의해 주세요.
@jaeyujo3728
@jaeyujo3728 5 жыл бұрын
감사합니다.
@keesun.b
@keesun.b 5 жыл бұрын
뎃글 감사합니다.
@jaehongsong8869
@jaehongsong8869 5 жыл бұрын
hibernate는 거의 모르는 사람인데요, bookStore에 book을 add해놓고 bookStore를 save한게 아니라 book을 save해서 book인스턴스에는 bookStore 정보가 없는거 아닌가요? 따로 외래키 제한조건도 안걸려있고
@keesun.b
@keesun.b 5 жыл бұрын
정답과 설명은 오늘 공개해 드릴께요.
@translating-developer
@translating-developer 5 жыл бұрын
하이버네이트 ㅎㅎ
@핵자전거
@핵자전거 3 жыл бұрын
배워하는 것 많고 실수할 가능성 많으면 뭣하러 ORM을 쓰나 싶군요.
@keesun.b
@keesun.b 3 жыл бұрын
한번만 공부를 잘 해두면 어마어마한 편의성을 제공하거든요. JDBC로 못돌아가요.
@luno3897
@luno3897 2 жыл бұрын
하이버네이트는 개념은 좋은데 실제 업무복잡한 si애선 쓰래기
@rollkimify
@rollkimify 5 жыл бұрын
생각이 날랑말랑해서 다시보고 자네요
@keesun.b
@keesun.b 5 жыл бұрын
정답은 오늘 공개!
@nick6267
@nick6267 5 жыл бұрын
궁금한게 있어요! jpa에서 수정할 떄 자꾸 select문을 탑니다. 근데 자기꺼만 select해오면 되는데 toString때문인지 연관된 객체들 다 select되버리는 문제가 있습니다 모두 LAZY로 되어있는데도 그러네요 구글에서 검색해서 업데이트 안되는 방법 찾아서 했는데도 안되네요 어떻게 해야 될까요?
@keesun.b
@keesun.b 5 жыл бұрын
글쎄요. 코드 없이 뭔 일이 벌어지고 있는지는 저도 파악하기가 어렵네요.
@nick6267
@nick6267 5 жыл бұрын
@@keesun.b entity @Entity @EntityListeners(AuditingEntityListener.class) @Data @Table(name = "seminar") @EqualsAndHashCode(onlyExplicitlyIncluded = true) public class Seminar { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "IDX") @EqualsAndHashCode.Include private Long idx; @Column private String title; @Column private String subtitle; @Column private String contents; @Column private String type; @Column private String address; @Column(name = "ticket_count") private int ticketCount; @OneToOne(fetch = FetchType.LAZY) @JoinColumn(name = "seminar_file_idx") private SeminarFile seminarFile; @Column(name = "start_date") private Date startDate; @CreatedDate @Column(name = "create_date") private Date createDate; @LastModifiedDate @Column(name = "update_date") private Date updateDate; @OneToOne(fetch = FetchType.LAZY) @JoinColumn(name = "create_users_uuid") private User createUser; -------------------------------------------- service logic Seminar seminar = modelMapper.map(seminarDto, Seminar.class); Seminar savedSeminar = seminarDAO.save(seminar); 저장, 수정 로직 입니다 저장할 떄는 문제가 없는데 수정할 경우에 Hibernate: select seminarfil0_.idx as idx1_35_0_, seminarfil0_.content_type as content_2_35_0_, seminarfil0_.create_users_uuid as create_u6_35_0_, seminarfil0_.original_file_name as original3_35_0_, seminarfil0_.save_file_name as save_fil4_35_0_, seminarfil0_.size as size5_35_0_, seminarfil0_.seminar_idx as seminar_7_35_0_ from seminar_file seminarfil0_ where seminarfil0_.idx=? Hibernate: select user0_.uuid as uuid1_38_0_, user0_.admin_memo as admin_me2_38_0_, user0_.category_idx as categor16_38_0_, user0_.create_date as create_d3_38_0_, user0_.disable as disable4_38_0_, user0_.email_id as email_id5_38_0_, user0_.join_nation as join_nat6_38_0_, user0_.name as name7_38_0_, user0_.others_recommendation_code as others_r8_38_0_, user0_.password as password9_38_0_, user0_.recommendation_code as recomme10_38_0_, user0_.status as status11_38_0_, user0_.update_date as update_12_38_0_, user0_.users_role_code as users_r17_38_0_, user0_.users_role_root_code as users_r18_38_0_, user0_.withdrawal_admin_memo as withdra13_38_0_, user0_.withdrawal_date as withdra14_38_0_, user0_.withdrawal_memo as withdra15_38_0_, user0_.withdrawal_uuid as withdra19_38_0_ from users user0_ where user0_.uuid=? 세미나의 연관된 user객체와 file객체를 select해 옴니다 왜 그럴까요?
@johnmark8039
@johnmark8039 3 жыл бұрын
@@nick6267 원투원 관계는 즉시로딩입니다
@ooo7414
@ooo7414 Жыл бұрын
휴.. 살았다
@figure-kim
@figure-kim 5 жыл бұрын
서연이 많이컸네요.ㅎㅎㅎ
@keesun.b
@keesun.b 5 жыл бұрын
부쩍 부쩍 크더라구요.
@zarate4985
@zarate4985 5 жыл бұрын
연관관계 주인이 아니라서
@qaztrewqaz9960
@qaztrewqaz9960 5 жыл бұрын
CascadeType!!
@keesun.b
@keesun.b 5 жыл бұрын
과연!!
@JSvlog
@JSvlog 5 жыл бұрын
저도 요고 생각났었는데 아닌 것 같아요... 😢
@keesun.b
@keesun.b 5 жыл бұрын
이거 의심하시는 분들은 이 영상 제대로 안 보신 듯. BookStore도 저장된거 분명 보여드렸는데.. CascadeType이 무슨 옵션이라고 생각하고 계시길래..
@JSvlog
@JSvlog 5 жыл бұрын
뜨끔하고 다시 시청하다보니 코드 한줄 고치면 되겠다 싶어서 회사 오자마자 해봤네요. 으~ (영상 대충 넘겨보다 테이블만 보고 영속성 전이가 안됐나 아주 잘못 생각했네요. 자, 그래도 강의 사러 갑니다. 어깨 넘어 배운건 역시 안되겠어요. JPA 다시 공부하겠습니다~ 🤤)
@qaztrewqaz9960
@qaztrewqaz9960 5 жыл бұрын
CascadeType 에 따라서 JpaRepository 에서 delete 실행후에 db에 그냥 남아있던 경우가 있었는데, 그 생각이 났던거 같네요!
@Mmonk111
@Mmonk111 3 жыл бұрын
제목이 참.....인성이.... 드러나네 ...잘나서 좋겠어요.
@kkumi_room
@kkumi_room 3 жыл бұрын
뭐지 이 열등감은 Luke님 그 화나고 속상한거 열등감이에요.. 약자마인드. 부디 Alpha Male 이 되시길 바랍니다
@Mmonk111
@Mmonk111 3 жыл бұрын
@@kkumi_room 열등감이 아니라 이 아저씨 영상이 우연히 알고리즘 추천으로 떠서 몇편 보기 시작했는데 말투가 참.. 그렇더라구요. QA 대답하는 꼬락서니도 그렇고....올초에 몇편보다 안보고 있었는데 얼마전에 구글신에 의해 또 영상추천이 떴어요. 이 영상이.... 영상에서 보이는 평소 본인태도랑 제목이 어찌나 매치가 되던지.... 본인도 아는것 같아요. 그리고 다양한 의견이 싫다면 영상을 Private으로 하거나 채널 접으면 되겠죠. 굳이 Public에 오픈해서 어중이 떠중이 얘기 들을 필요도 없고...
@kkumi_room
@kkumi_room 3 жыл бұрын
@@Mmonk111 의견이라기에는 비판과 비난같아보여요 Luke님말씀도 뭔지 알겠지만, 지적을위한 지적이아닌 비판을 위한 지적같은 느낌. 사실저는 백기선님 스타일과 맞지않아서 거의 듣지 않는사람인데도 luck 님 말씀이 너무 날카로워보여서 답글달았습니다 ( 조언이라고 생각하고 본인도 모르게 작성하는 악플들을 싫어하는 사람이에요)
JPA, OneToMany 양방향 관계 "MappedBy" 해설
11:55
백기선
Рет қаралды 31 М.
나이 40에 갑자기? 개발자가 되고 싶다고?
8:28
백기선
Рет қаралды 21 М.
Haunted House 😰😨 LeoNata family #shorts
00:37
LeoNata Family
Рет қаралды 12 МЛН
У вас там какие таланты ?😂
00:19
Карина Хафизова
Рет қаралды 27 МЛН
ТЮРЕМЩИК В БОКСЕ! #shorts
00:58
HARD_MMA
Рет қаралды 2,2 МЛН
Perfect Pitch Challenge? Easy! 🎤😎| Free Fire Official
00:13
Garena Free Fire Global
Рет қаралды 86 МЛН
평생 써먹는 코딩 공부 순서, 코딩 고수는 보지 마세요!
15:02
스파르타 연구소
Рет қаралды 254 М.
슈카쌤 리즈 시절 시험비법
20:43
슈카월드 코믹스
Рет қаралды 1,1 МЛН
JPA @ManyToOne 단방향 관계 쿼리 문제 해설편
14:47
배민, 스타트업 기술면접 공개! - 대표 질문 3가지!
18:20
[10분 테코톡] 수달의 JPA N+1 문제
8:21
우아한테크
Рет қаралды 13 М.
Haunted House 😰😨 LeoNata family #shorts
00:37
LeoNata Family
Рет қаралды 12 МЛН