묻고 답해요
138만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바 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는 도저히 못 찾겠더라구요 그리고 없다면 하이버네이트 인터셉터를 사용해야하는지도 문의드립니다 답변주시면 감사드리겠습니다
-
미해결
스프링부트에서 MariaDB 연동 관련 에러
안녕하세요. 스프링부트 프로젝트를 아래와 같이 생성하고, DB 정보를 application.yml에 기재하였음에도 아래와 같은 에러가 뜨는데 도저히 해결이 안되네요... 도움 부탁드립니다 ㅠ Error creating bean with name 'dataSourceScriptDatabaseInitializer' defined in class path resource Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' runtimeOnly 'org.mariadb.jdbc:mariadb-java-client' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test'} spring: datasource: hikari: data-source-class-name: org.mariadb.jdbc.Driver # jdbc-url: jdbc:mysql://127.0.0.1:3306/test?serverTimezone=UTC&characterEncoding=UTF-8 jdbc-url: jdbc:mariadb://localhost:3306/test?characterEncoding=UTF-8&serverTimezone=UTC username: test password: 1229 connection-test-query: SELECT 1
-
해결됨실전! 스프링 데이터 JPA
Entity 사용에 대한 질문
안녕하세요. 강사님 먼저 항상 좋은 강의를 해주셔서 감사합니다. 제가 실무에서는 Mybatis만 사용하다, 강사님 강의를 통해서 처음 JPA를 접하고, 개인 프로젝트에서 처음 JPA를 사용하고 있습니다. 강의에서 Entity를 직접 반환을 하면 안된다고 하신걸로 기억을 하는데, API 개발 시 리턴을 할 때만 직접 Entity로만 반환을 하면 안되지는 일반 MVC 형태의 개발을 할 때는 직접 Entity를 반환하는 방식을 실무에서 사용을 하시는지 궁금합니다. 저는 평소 Controller에서 파라미터를 받을 때 @ModelAttribute를 이용해 DTO를 통해 파라미터를 받는 방식을 주로 이용하는데, JPA 사용 시 @ModelAttribute를 이용하여 직접 Entity를 받는 방식은 좋은 방식인지 궁금하여 질문 드립니다. 감사합니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
DDD 애그리거트 에서 JPA 지연로딩 전략이 궁금합니다.
안녕하세요! 영한 선생님 스프링 클라우드와 JPA를 사용하여 간단한 마이크로서비스 구축을 하는 연습을 하는 도중 궁금증이 생겨서 질문을 올리게 되었습니다. 예를 들면 대출 (Rental)이라는 애그리거트는 반납도서와 대출도서라는 엔티티를 연관관계로 맺고 있습니다. 대출 (1) ---- (N) 반납 도서 대출 (1) ---- (N) 대출 도서 영속성 전이(cascade) + 고아 객체(orphanRemoval)를 통해서 대출 애그리거트 를 통해서 반납 도서와 대출 도서를 생명주기를 관리하고 있습니다. 제가 궁금한 점은 지연로딩 전략을 사용해서 컬렉션 패치 조인을 사용할 때 너비로든 깊이로든 2개 이상의 컬렉션 페치조인을 사용하면 안된다고 알고 있습니다. 그럼 지연로딩 전략을 통해서 대출과 반납도서 대출도서를 조회해오는 방법은 어떻게 하면 좋을지 고민입니다. 대출과 반납도서를 먼저 페치조인으로 조회해오고 다음 대출에 속한 대출 도서를 조회해오면 된다고 생각하고 있습니다. -> 대출에 속한 대출 도서를 조회할 때는 리포지토리를 통해 조회하는게 좋을까요 아니면 대출 애그리거트에서 대출 도서를 사용하는 시점에 초기화해서 사용하는게 좋을까요?? 또 궁금한 점이 애그리거트 루트 패턴을 사용할 때는 애그리거트에 대한 리포지토리만 생성하고 하위 엔티티에 대한 리포지토리를 생성할 필요가 있는지 궁금합니다. 질문을 두서 없이 작성한 거 같아서 정리하자면 1. 애그리거트 루트 패턴을 사용할 때 애그리거트에서 2개의 컬렉션 (지연 로딩) 조회 전략 2. 애그리거트 루트 패턴을 사용할 때의 리포지토리 생성전략 3. 영속성 전이와 고아 객체를 통해 자식의 생명주기를 관리하고 있는데 자식리포지토리를 조회용으로 생성해도 되는지?? 입니다.! ---------- 추가 상품 서비스와 주문 서비스에서 주문 가능한 상품이 여러개라고 할 때 주문 (1) - 주문_상품 (N) ||(서비스 분리) 상품 으로 만들어지고 주문_상품이라는 엔티티에서 상품의 ID를 가지고 있으면 된다고 생각합니다. 만약 어떠한 주문의 주문 상품목록을 조회한다고하면 주문 서비스에서 주문_상품의 ID 리스트를 Feign-Client 같은 동기 API 호출을 통해서 상품 서비스에서 IN 쿼리로 상품들의 정보를 조회한 뒤에 응답을 받고 응답 받은 데이터를 클라이언트에게 보내주는 방법이 맞는지 궁굼합니다. 정리하자면 주문서비스에서 주문한 상품의 목록에 대한 정보를 클라이언트에게 보내줄 때 상품 서비스에서 상품 Id List를 IN쿼리로 조회를 해서 응답하는 것이 맞는지 입니다!
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
v2 api의 delivery 쿼리 조회문
안녕하세요 영한님! 간단한 주문 조회v2 질문이 있습니다. @GetMapping("/api/v2/simple-orders")public Result ordersV2() { List<Order> orders = orderService.findAll(new OrderSearch());//프록시가 들어있는 orde 객체 List<SimpleOrderDto> collect = orders.stream().map(o -> new SimpleOrderDto(o.getId(), o.getMember().getName(), o.getOrderDate(), o.getStatus(), o.getDelivery().getAddress())). collect(Collectors.toList()); return new Result(collect);} 위의 v2 api를 실행하면 문제없이 5개의 쿼리문이 나가는 것을 확인했습니다. name을 조회하는 쿼리는 예상했던데로 단순 조회 쿼리인 select member0_.member_id as member_i1_5_0_, member0_.city as city2_5_0_, member0_.street as street3_5_0_, member0_.zipcode as zipcode4_5_0_, member0_.name as name5_5_0_ from member member0_ where member0_.member_id=? 와 같이 나가지만. delivery 엔티티에 접근할때 select delivery0_.delivery_id as delivery1_2_0_, delivery0_.city as city2_2_0_, delivery0_.street as street3_2_0_, delivery0_.zipcode as zipcode4_2_0_, delivery0_.status as status5_2_0_, order1_.orders_id as orders_i1_6_1_, order1_.delivery_id as delivery4_6_1_, order1_.member_id as member_i5_6_1_, order1_.order_date as order_da2_6_1_, order1_.status as status3_6_1_ from delivery delivery0_ left outer join orders order1_ on delivery0_.delivery_id=order1_.delivery_id where delivery0_.delivery_id=? 위와 같이 외부 조인문이 나가는 것을 확인했습니다. 마치 패치조인을 한거 같은 전혀 예상치 못한 쿼리문이여서 질문을 드립니다. 또한 모두 lazy로 설정을 했습니다. 혹시 데이터베이스의 방언차이 때문일까요? mysql 사용중입니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
EntityManager 는 왜 AutoCloseable 을 지원하지 않나요?
안녕하세요 문득 궁금한점이 생겨서 질문해봅니다. 항상 사용하고 버려야 한다면 AutoCloseable 지원하여 try-with-resource 문을 사용할 수 있도록 도움을 주면 좋을 것 같다고 생각이 들었지만 시용해볼려고 하니 지원하지 않고있습니다. 이에 따른 이유가 혹시 있는지 궁금해서 질문해봅니당.!
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
401 Unauthorized
postman으롷 127.0.0.1:port로 /login 호출 시에 401에러가 나는데 왜그런걸까요..? login api 호출 시 loadUserByUserName 메서드 타서 user정보 가져오는거까진 디버그로 확인했는데, 해당 값 user로 감싸서 리턴 후에 응답이 저렇게 나오는데 이유를 모르겠네요.. 참고로 permitAll로 진행중입니다
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
getTotalPrice같은 조회함수가 왜 필요한지 모르겠씀니다=_=
totalPrice라는 변수를 만들어서 처음 주문 들어왔을떄 계산해서 넣어두고, 주문 취소라던지 하는 변경이 일어나면 그때 상황에 맞게 업데이트 해주는게 맞는거 아닌가요?? 일반적으로 변경보다는 조회가 빈번하니까 변경되었을때 미리 계산해두고 조회할떄는 가져다 쓰기만 하는게 더 맞지않나 싶어서요=_=