묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
연관관계 편의메서드 .
안녕하세요 JPA 활용 1편을보고 넘어왔습니다.. 1)질문 그렇나 현재 아직 이해못한점이 연관관계 편의메서드를 사용하면 어느면서에서 이점이 발생하는지 잘모르겠습니다.. 양방향관계시 연관관계메서드 에서 public void setTeam(Team team){ this.team = team; team.getMembers().add(this);} team.getMembers().add(this); 이부분이 team 엔티티에서도 Member의 값을 가질수있도록 하는것으로 보여집니다만 team.getMembers().add(this); 이부분이없어도 Team team = em.find(Team.class, teamA.getId()); System.out.println("연관관계"+team.getMembers()); team.getMembers() 를해도 값이 잘 보여집니다.. 어느면에서 편의가 발생하는지 감이잘 안잡힙니다 ㅠ.. 2)질문 일대 다 관계에서 페치조인 쿼리로 페이징을하면 데이터 뻥튀기 때문에 위험하다고 하셨습니다. 그래서 직접 확인을해보고있는데욥 Team teamA = new Team(); teamA.setName("팀A"); em.persist(teamA); Member member1 = new Member(); member1.setUsername("회원1"); member1.setAge(10); member1.setTeam(teamA); em.persist(member1); Member member7 = new Member(); member7.setUsername("회원7"); member7.setAge(10); member7.setTeam(teamA); em.persist(member7); String query = "select t from Team t join fetch t.members"; List<Team> result = em.createQuery(query,Team.class) .setFirstResult(0) .setMaxResults(1) .getResultList(); for (Team team : result) { System.out.println("팀이름 = " + team.getName()); for (Member member : team.getMembers()){ System.out.println("------------> member = " + member); } } 결과 딱이렇게 나왔는데 이것이 뻥튀기가 된결과인가요? 어느부분에서 위험한것인지 잘 모르겠습니다 .. (제생각으로는 0번인덱스 페이지에 팀의값 1개가 잘 출력됫다고 생각되거든요 아니라면 팀에 맴버의 값을 1개만 출력해야하는데 두개가 출력이되어서 문제인건가요?)
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Exception 질문입니다.
안녕하세요 영한님, 매번 강의를 보고 커뮤니티 게시판에서 다른분들의 질문을 보고 저도 모르는걸 새로 배워가고있는데요 질문글 중 ====================================== 실무에서 보면 throw new xxxxException을 했을 경우 이를 호출하는 메서드에 뻘겋게 throw하거나 try catch하라고해서 똑같이 throw해주거나 했던거같은데... MemberService는 왜 이런게 없을까요? ============================== 라는 내용에서 질문이 있습니다. 구글링으로 checked와 unchecked의 차이에 대해서 알아보았습니다. 다만 checked는트랜잭션에서 롤백이 안되고 unchecked는 롤백이 된다고 하는걸 알았습니다. 여기서 궁금한게 있습니다. 강의 18:17에 validateDuplicateMember 매소드 내에서 if(!findMember.isEmpty() 일 경우 uncheck 예외를 던지게 됩니다. 같은 Unchecked인 IndexOutOfBoundException의 경우 배열의 크기를 잘못 접근하면 try catch로 묶지 않았을 경우 프로그램이 종료가 되더라구요, 하지만 RunTimeException을 상속받는 IllegalStateException은 따로 try catch문으로 잡아주지 않아도 프로그램이 종료되지 않고 예외가 발생하면 이미 존재하는 회원입니다. 라는 로그를 볼 수있습니다. 스프링 내부 어디선가 throw new IllegalStateException을 받아주는것인가요? 받는다면 어디서 받아주는 것인가요? 감사합니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
fetchJoin() 에러 발생
안녕하세요 fetchJoin() 할 때 에러가 발생하는데 해결방법을 찾을 수 없어 조언을 구합니다 정상 동작 query.from(A) .leftjoin(A.B , B).fetchJoin() 에러 발생 query.from(A) .leftjoin(A.B , B).fetchJoin() .leftjoin(A.B.C , C).fetchJoin() fetchJoin할 때 엔티티 탐색(?)이 1단계 더 생기면 아래 에러가 발생합니다 도저히 해결이 안되네요 비슷한 질문이 있었는데 dto도 아닌 것 같네요 관계설정은 잘 한 것 같은데 전부 many to one > many to one으로 나아갑니다 org.hibernate.QueryException: query specified join fetching, but the owner of the fetched association was not present in the select list [FromElement{explicit,not a collection join,fetch join,fetch non-lazy
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
MemberForm? Dto?
강의에서 구현한 MemberForm이 Dto와 같은 개념인가요? MemberForm을 사용하신 이유에 대해 설명하신것을 들어보면 Dto와 같은 것 같은데 만약 같은것이면 왜 Dto라 명명하지 않으신건지, 혹은 Dto와 다른 개념이면 어떤 점이 다른것인지 궁금합니다.
-
미해결스프링과 JPA 기반 웹 애플리케이션 개발
선생님 안녕하세요
안녕하세요 제가 강의를 보고 공부하던도중 8:14분에 있는 정규식과 닉네임의 제출양식이 같아야하는부분에서 must match~라고 빨간 오류를 내주는 부분에서 저는 가입하기 버튼을 눌렀을때 오류를 내지않고 그냥 인덱스 페이지(/)로 그냥 정상적으로 보내버려서 오늘 하루동안 이 오류를 계속 잡고 있다가 디버깅, 코드 비교 5번, 인텔리제이 재설치 pom.xml 파일 똑같이 맞추기 별 방법을 해봐도 안됬는데 선생님께서 제공해주신 완성된 소스코드의 첫 커밋으로 체크아웃하여 스프링 버전을 선생님의 스프링 버전인 2.2.4에서 제가 강의를 들으며 직접 코드를 따라치던 스프링의 버전인 2.5.2로 변경을 하고나니 선생님꺼의 완성코드 프젝에서도 저런 must match오류 구문이 안나타나고 그냥 인덱스페이지로 이동을 시키는 현상이 똑같이 나타났습니다. 제가 이 현상을 보고 오류의 원인이 스프링 버전차이라고 확신을 하게되었는데요 제 인텔리버전은 21.2EAP버전입니다 근데 스프링 프젝을 처음만들때 2.2.4버전으로 만드는 탭이 아예없어서 앞으로 스프링 프젝을 2.5이상 버전으로 해야할거같은데 이런 버전차이때문에 나타나는 현상을 어떻게 해결할수 있을까요? 그리고 @Pattern 어노테이션 뿐만아니라 @Length어노테이션에도 min = 3, max = 5를 주고 5개를 훨씬넘게 입력을 했는데도 오류를 잡아주지않았습니다. P.S 제가 직접 보고 따라쳤던 타이핑버전의 소스코드를 그대로 선생님꺼 완성된프젝에 옮겨서 실행했는데 정상작동이 됬습니다. 이 말은 제가 타이핑친 소스코드에 정말 문제가 없다는 거여서 제가 버전차이의 문제라고 확신을 하게되었습니다. 아 그리고 EAP버전이여서도 아닌게 제가 재설치를 하기전까지는 EAP버전이 아니였습니다. 긴글 읽어주셔서 정말 감사합니다.
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
연관관계 메소드와 setter
엔티티에서 Setter 를 사용하지 않아야 변경점을 줄일 수 있어 유지보수 할 때 유리하다고 하셔서 최대한 사용을 자제하려고 하는데요, 연관관계 메소드를 만들 때, setter 를 사용해서 만드셨는데 없이 만들 수 있는 방법이 있을까요? // Order - Delivery 연관관계 메소드 public void setDelivery(Delivery delivery){ this.delivery = delivery; delivery.setOrder(this); // Delivery 의 setter 사용 }
-
미해결
JPA 1:1 연관관계 설정
안녕하세요 양방향 1:1 연관관계 관련되서 이해가 잘 되지않아 문의드립니다! 부모 entity, 자식 entity가 무조건 1:1 관계인 경우 자식은 없을 수 도 있지만 부모는 항상 존재해야함으로 부모 entity가 주최가 되는게 맞는걸로 알고있는데 자식이 존재하는 경우 데이터 등록 시 부모 테이블에만 등록이 되는데 엔티티 설정이 잘못된 부분이 어디인지 잘 모르겠습니다.. ㅠㅠ @Getter @Setter @NoArgsConstructor(access = AccessLevel.PUBLIC) @Entity @Table(name = "TB_MANAGER") @DynamicInsert @DynamicUpdate @JsonInclude(JsonInclude.Include.NON_EMPTY) public class Manager { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "MANAGER_KEY") @ApiModelProperty(value = "관리자 시퀀스", hidden = true, name = "managerKey") private Long managerKey; @Column(name = "MANAGER_ID") @ApiModelProperty(value = "관리자 아이디", name = "managerId") private String managerId; @Column(name = "PASSWORD") @ApiModelProperty(value = "비밀번호", name = "password") @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) private String password; @Column(name = "NAME") @ApiModelProperty(value = "이름", name = "name") private String name; @OneToOne(fetch = FetchType.EAGER) @JoinColumn(name = "MANAGER_KEY") private ManagerSub managerSub; } @Getter @NoArgsConstructor(access = AccessLevel.PUBLIC) @Entity @Table(name = "TB_MANAGER_SUB") @DynamicInsert @DynamicUpdate @JsonInclude(JsonInclude.Include.NON_EMPTY) public class ManagerSub { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "MANAGER_SUB_KEY") @ApiModelProperty(value = "zzz", hidden = true, name = "managerSubKey") private Long managerSubKey; @Column(name = "MANAGER_KEY") private Long managerKey; @Column(name = "COUNT") @ApiModelProperty(value = "수", name = "count") private Long count; @Column(name = "PHONE") @ApiModelProperty(value = " 전화번호", name = "phone") private String phone; @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY) @JoinColumn(name = "MANAGER_KEY", insertable = false, updatable = false) private Manager manager; }
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
연관관계의 주인을 다시들어봐도 잘이해하지 못하는 지점 ㅠㅠ
안녕하세요 강의 잘듣고있는 1인입니다. 1 == Member N == Address 1:N 단방향 oneToMany 방향 관계에서요 객체에서는 1이 관계의 주인(외래키)이지만 DB에서는 N이 외래키를 들고있다고 이해하고 있습니다. 그렇다면 객체상을 기준으로 1:N 에서 외래키를 쥐고있는 Member(1)쪽이 변경할수있는 권한이있고 Address(2)쪽에서는 조회만 가능한건가요? (디비에서는 다르게 동작하지만)
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
1.Exception 관련, 2. Item에 정의한 메서드
1.MemberService에 이 메서드도 Exception에 두어도 될까요?validateDuplicateMember2.Item에 정의한 재고수량/제거 메서드를 Member와 같이 ItemService를 만들어 여기에 둔다면 조금 어색한 느낌인가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
GET에서 던져준 new Form과 POST에서 제출된 Form간의 연관관계가 궁금합니다!
안녕하세요. 훌륭한 강의.. 완강하고 공부하던중 문득 의문이 들었습니다. GET에서 던져준 Form과 POST의 Form은 같은 객체일까? 하고 보니 다른 주소값의 객체이더라구요. 혼자 고민을 조금 해보았습니다. 생각해보니 POST에서 넘어온 것은 JSON형태의 데이터를 객체화?? 시켰을 뿐인 것일테니 당연한 결과 이겠더라구요.. 이어서 궁금한것은 GET에서의 Form의 역할 입니다. 그저 어떤 필드가 정의되어 있는지 알려줄 뿐인걸까요?? 그 대상은 타임리프인?? 그렇다면 BookForm.class 나 다른 방법을 통해 알려 줄 수 있을텐데 이런 방법을 택한 이유가 뭘까요?? 메모리 낭비와 코드의 간결함(가독성과 개연성 있는 문맥)을 저울질 했을 때 후자가 훨씬 가치 있는 거라서 그런걸까요??
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
hibernate.jdbc.batch_size 질문있습니다.
JPA가 쓰기지연으로 인해 한 트랜잭션 안에서 엔티티를 몇개를 persist 하던간에 commit을 만나기 전까지는 1차캐시 저장소와 쓰기지연 sql 저장소에 각각 보관해두다가 commit을 만나면 DB에 insert 쿼리를 날리는거 맞나요 ?? 그렇다면 batch_size 옵션이 전 무의미하다고 느껴져서요 !! 어차피 이 옵션이 있던지 없던지 한번에 쿼리는 날리는데 어떤의미가 있는지 잘 와닿지가 않습니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
회원가입 테스트 오류
안녕하세요 강사님 항상 좋은 강의와 피드백 감사드립니다 다름이 아니라 이번에 강의 중 '회원가입' 테스트를 그대로 따라 코딩하였으나 실행에 오류가 뜹니다. 관련하여 사진과 오류글을 그대로 올려보니 한 번 확인해주시면 감사하겠습니다! java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:132) at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:124) at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:244) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:227) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:246) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at org.junit.runners.ParentRunner.run(ParentRunner.java:413) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:221) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54) Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [jpabook.jpashop.JpashopApplication]; nested exception is org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'memberRepository' for bean class [jpabook.jpashop.repository.MemberRepository] conflicts with existing, non-compatible bean definition of same name and class [jpabook.jpashop.domain.MemberRepository] at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:189) at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:331) at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:247) at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:311) at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:112) at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:746) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:564) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:771) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:763) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:438) at org.springframework.boot.SpringApplication.run(SpringApplication.java:339) at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:123) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124) ... 25 more Caused by: org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'memberRepository' for bean class [jpabook.jpashop.repository.MemberRepository] conflicts with existing, non-compatible bean definition of same name and class [jpabook.jpashop.domain.MemberRepository] at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.checkCandidate(ClassPathBeanDefinitionScanner.java:349) at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:287) at org.springframework.context.annotation.ComponentScanAnnotationParser.parse(ComponentScanAnnotationParser.java:132) at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:296) at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:250) at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:207) at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:175) ... 38 more
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
로직 배치
안녕하세요! 선생님 강의 잘 보고 있습니다. 강의를 보며 MyBatis로 개발된 프로젝트에 JPA를 적용해보고 있는데요. change 라는 메소드를 도메인객체에 작성하신 부분에 질문이 있습니다. 기존 프로젝트에서는 update 나 휴면계정처리 같은 메소드를 모두 dao에 배치했었는데 JPA를 적용하는 과정에서 update, 휴면계정처리 또는 로그인 상태 확인 과 같은 메소드는 어디에 배치하는 것이 좋을지 헷갈리기 시작합니다. 질문이 미시적인데요. 결과적으로 domain, repository, service, controller 에 배치되는 로직의 기준에 대해 팁을 알고 싶습니다. 맞는 말인지는 모르겠지만 예시를 들자면 아래와 같이요. ex) repository에는 DB에 접속이 꼭 필요한 메소드만 작성한다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
windows는 설정을 어떻게 하나요?
과제 진행하면서 windows에서는 file 경로를 못 찾아서 config 설정이 안되는데 어떻게 해야 하나요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
부트스트랩 적용 후 회색영역이 안 뜰 때 해결방법
그 회색 창 html을 보시면 class="jumbotron"으로 되어 있을텐데 부트스트랩4까지 지원해주던 클래스입니다. 부트스트랩5로 올라가면서 빠졌다고 합니다. 현재 부트스트랩 가장 최신 버전이 5.0.1이기 때문에 저처럼 최신 버전 받았다가 엥 왜 얘만 안되지 하시는 분이 있으실까봐 관련 정보를 남깁니다. 부트스트랩 4를 이용하시면 문제 없고 어차피 디자인적인 요소라 크게 신경 안쓰고 넘어가셔도 될 것 같습니다. - 부트스트랩5 점보트론 변경 정보 https://getbootstrap.com/docs/5.0/migration/#jumbotron - 부트스트랩4 다운로드 링크 https://getbootstrap.com/docs/4.6/getting-started/download/ - 다운로드 없이 cdn으로 적용하기 https://www.inflearn.com/questions/151764
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
orderItem LAZY 로딩 질문
안녕하세요. orderItems.stream().forEach(o -> o.getItem().getName()); orderItem 반복문 돌 때 getName을 하거나 getprice, getstockQuantity를 넣어도 모든 필드가 로딩이 되는데 왜 그런건지 이해가 잘 안가는데 간단한 설명 부탁드려도 될까요?
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Starter-Zipkin 의존성 추가 문제 `Cannot resolve starter-zipkin:unkown`
강사님 안녕하세요.이번 질문은 다름이 아니라, Zipkin 의존성 추가할 때, Spring-boot 나 Cloud 가 강의 시점에 비해 상위 버전이라는 이유여서 그런지 추가가 되질 않아 이렇게 남기게 되었습니다 그래서 아래와 같이 Maven Repo 에서 starter zipkin 의 최신 버전으로 명시하여 애러는 모면했습니다만... <!-- Zipkin --><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-sleuth</artifactId></dependency><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zipkin</artifactId> <version>2.2.8.RELEASE</version></dependency> 그러나, 이것이 올바른 설정인지 의문이 듭니다자칫, 충돌이 날것 같은 불안감 있습니다.혹시 다른 방식으로 starter 를 추가해야 되는지 궁금합니다. 제가 실습을 시작할 당시의 Spring-boot, cloud 버전입니다 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.4.6</version> </parent> <properties> <java.version>11</java.version> <spring-cloud.version>2020.0.2</spring-cloud.version> </properties> 읽어주셔서 감사드립니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
에러가 나는데 .. 확인 부탁드립니다
Member member = new Member();member.setUsername("kim");em.persist(member);List<Member> resultList = em.createNativeQuery( "select MEMBER_ID, city, street, zipcode, USERNAME from MEMBER") .getResultList();for (Member member1 : resultList) { System.out.println("member1.getUsername() = " + member1.getUsername());} java.lang.ClassCastException: class [Ljava.lang.Object; cannot be cast to class jpabook.jpashop2.domain.Member ([Ljava.lang.Object; is in module java.base of loader 'bootstrap'; jpabook.jpashop2.domain.Member is in unnamed module of loader 'app') at jpabook.jpashop2.JpaMain.main(JpaMain.java:66) 6월 21, 2021 5:34:08 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PoolState stop INFO: HHH10001008: Cleaning up connection pool [jdbc:h2:tcp://localhost/~/jpashop2] 6월 21, 2021 5:34:08 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections close ERROR: Connection leak detected: there are 1 unclosed connections upon shutting down pool jdbc:h2:tcp://localhost/~/jpashop2 형변환 할수 없다고 하는 에러가 나는데요.. List<Member> resultList = em.createNativeQuery( "select MEMBER_ID, city, street, zipcode, USERNAME from MEMBER", Member.class) .getResultList(); 이렇게 고치면 ERROR: Column "INSERT_MEMBER" not found [42122-200] javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not execute query at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:154) at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1613) at org.hibernate.query.Query.getResultList(Query.java:165) at jpabook.jpashop2.JpaMain.main(JpaMain.java:63) 이런 에러가 나오고요... 그래서 Member 에서 BaseEntity를 extends 를 않하면 잘 돌아갑니다... 이유가 뭘까요?? BaseEntiy도 첨부하겠습니다
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
뻥튀기가 된다는 말이 헷갈립니다
안녕하세요 . 페치 조인 강의를 들으며, 일대다 에서 데이터가 뻥튀기 된다는 말이 1. 다대일의 관계의 경우 - 예를들어, Member - Team이 다대일 관계인 경우, "Member입장에서" 데이터가 뻥튀기 되지 않는다. 2. 일대다의 관계 경우 - 예를들어, Team - Member가 일대다 관계인 경우, "Team입장에서" 데이터가 뻥튀기 된다. 이런 의미인가요? 사실 각 Member, Team 테이블에 데이터가 동일한 조건 하에서, Team inner join Member나 Member inner join Team는 결과가 같다고 생각했기에, 입장에 따라 뻥튀기냐 아니냐로 갈리나도 이해했는데 맞는건지 궁금합니다. 감사합니다
-
미해결실전! 스프링 데이터 JPA
하이버네이트 인터셉터문의
안녕하세요 강사님 다름아니라 하이버네이트 인터셉터 사용시 디비 인서트 업데이트 전후에 암호화가 필요한 필드 그리고 암호화가된 필드에 암호화나 복호화처리를 할 수 있는데 jpa에서 이런 인터셉터 스펙이 있는지 궁금합니다 구글링을 해도 하이버네이트 인터셉터는 있는데 jpa는 도저히 못 찾겠더라구요 그리고 없다면 하이버네이트 인터셉터를 사용해야하는지도 문의드립니다 답변주시면 감사드리겠습니다