inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

JPA오류

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

[질문 내용] JPA 테스트 코드 오류 ============================ CONDITIONS EVALUATION REPORT ============================ Positive matches: ----------------- AopAutoConfiguration matched: - @ConditionalOnProperty ( spring.aop.auto =true) matched (OnPropertyCondition) AopAutoConfiguration.AspectJAutoProxyingConfiguration matched: - @ConditionalOnClass found required class 'org.aspectj.weaver.Advice' (OnClassCondition) AopAutoConfiguration.AspectJAutoProxyingConfiguration.CglibAutoProxyConfiguration matched: - @ConditionalOnProperty (spring.aop.proxy-target-class=true) matched (OnPropertyCondition) ApplicationAvailabilityAutoConfiguration#applicationAvailability matched: - @ConditionalOnMissingBean (types: org.springframework.boot.availability.ApplicationAvailability; SearchStrategy: all) did not find any beans (OnBeanCondition) DataSourceAutoConfiguration matched: - @ConditionalOnClass found required classes 'javax.sql.DataSource', 'org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType' (OnClassCondition) - @ConditionalOnMissingBean (types: io.r2dbc.spi.ConnectionFactory; SearchStrategy: all) did not find any beans (OnBeanCondition) DataSourceAutoConfiguration.PooledDataSourceConfiguration matched: - AnyNestedCondition 1 matched 1 did not; NestedCondition on DataSourceAutoConfiguration.PooledDataSourceCondition.PooledDataSourceAvailable PooledDataSource found supported DataSource; NestedCondition on DataSourceAutoConfiguration.PooledDataSourceCondition.ExplicitType @ConditionalOnProperty (spring.datasource.type) did not find property 'type' (DataSourceAutoConfiguration.PooledDataSourceCondition) - @ConditionalOnMissingBean (types: javax.sql.DataSource,javax.sql.XADataSource; SearchStrategy: all) did not find any beans (OnBeanCondition) JPA코드를 작성하고 통합 테스트 코드를 작성하니 이와같은 오류가 뜹니다! 테스트 코드는 package hello.hello_spring.service; import hello.hello_spring.domain.Member; import hello.hello_spring.repository.MemberRepository; import jakarta.transaction.Transactional; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; @SpringBootTest @Transactional class MemberServiceIntegrationTest { @Autowired MemberService memberService; @Autowired MemberRepository memberRepository; @Test public void 회원가입() throws Exception { //Given Member member = new Member(); member.setName("hello"); //When Long saveId = memberService.join(member); //Then Member findMember = memberRepository.findById(saveId).get(); assertEquals(member.getName(), findMember.getName()); } @Test public void 중복_회원_예외() throws Exception { //Given Member member1 = new Member(); member1.setName("spring"); Member member2 = new Member(); member2.setName("spring"); //When memberService.join(member1); IllegalStateException e = assertThrows(IllegalStateException.class, () -> memberService.join(member2));//예외가 발생해야 한다. assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다."); } }이렇게 되어있습니다!

  • java
  • spring
  • mvc
  • spring-boot
이소민 댓글 2 좋아요 0 조회수 237

다형성

미해결

나도코딩의 자바 기본편 - 풀코스 (20시간)

다형성 강의 관련해서 질문드릴게있습니다. instanceof를 쓸 때 형 변환이 왜 필요한지 알고싶습니다.

  • java
  • 객체지향
류경완 댓글 2 좋아요 0 조회수 137

7번 장바구니 문제의 minus() 메서드 로직 관련

미해결

김영한의 실전 자바 - 중급 2편

[질문 내용] 문제 7 - 장바구니 문제에서, minus 메서드를 보면 찾으려는 product가 존재하지 않는 경우에도 cartMap.remove()를 호출하도록 되어 있습니다. 존재하지 않는 것을 지우고자 하는 게 불필요하게 메서드를 호출하는 게 아닌가 싶은데, 예제를 쉽게 만들기 위한 선택인가요, 아니면 실무에서 저렇게 결과를 찾을 수 없어도 지우도록 하는 코드를 작성해도 문제가 없는 건가요?

  • java
  • 객체지향
  • 코딩-테스트
  • 알고리즘
Sangjun Lee 댓글 1 좋아요 0 조회수 103

interrupt() 메서드 사용 부분

미해결

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 아래 부분처럼 interrupt() 사용해서 수정했는데 잘 작동하는데 이건 잘못된 코드 일까요..? while문도 try() catch() 문 안에 넣으면 안될까요 ..? @Override public void run() { try { while (true) { if (jobQueue.isEmpty()) { continue; } String job = jobQueue.poll(); log("출력 시작: " + job + ", 대기 문서: " + jobQueue); Thread.sleep(3000); log("출력 완료: " + job); } } catch (InterruptedException e) { log("interrupt!"); log("프린터 종료"); } }

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
혜진 댓글 1 좋아요 0 조회수 173

섹션5 파라미터 수집과 변환에서 시차 문의

해결됨

코드로 배우는 스프링 웹 프로젝트 - Basic

강의4에서 강의5로 넘어오면 SampleController.java에 작성하지 않았던 코드가 작성되어 있습니다. 강의에서 보여지던 git 주소와 실제 git에서 검색되는 레파지토리 이름이 다름. spring2024_template 인가 싶어서 보면 이것도 브런치 ch03, ch07 두개 뿐인데 그나마도 강의에서 보여주는 소스코드와 다릅니다. 교재와 강의와 git이 모두 일관성이 없어서 따라가기가 벅차네요. 강의 찍으신 거 그대로 실습해보시고 올리시는 게 맞나요 ?? 강의초기에 미리 만들어둔 JSP 파일이 없어서 에러나는 부분 컨트롤러 소스 주석 푸실 때 언급이라도 해주시면 좋겠습니다. 강의 마칠 때(9:22) 즈음 되어서 에러나는 게 정상입니다. 라고 하시면 1~4강 강의 진행 하다가 갑자기 5강 강의 초반에 에러 떠서 이것저것 확인해보고 하느라 시간 잡아먹게 되네요.

  • java
  • jsp
  • spring
  • mybatis
박기남 댓글 1 좋아요 0 조회수 177

인텔리제이 앱이 안 열려요

미해결

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 인텔리제이 앱이 어제까지만 해도 됬는데 갑자기 오늘 키려고 보니 현재 Pc에서는 앱을 실행할 수 없다고 뜨는데 어떻게 해야하나요?ㅠㅠ

  • java
water678qetuo678 댓글 1 좋아요 0 조회수 296

build 시 jdk 깔았음에도 java installations does not exist 에러

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요 정말 하다 하다 안돼서 질문 남깁니다.. 공부하고 싶어요 도와주세요 ㅠㅠㅠㅠ 1 ) build 시 jdk 깔았음에도 java installations does not exist 에러 예전에 jdk11썼었는데 학기끝나고 다시 공부하려고 보니 17로 바꾸라고 해서 jdk:17 / springBoot: 3 설정했는데 아래 첨부드린것 과 같은 에러가 나요.. 17로 바꿨음에도 불구하고 gradle 이 11을 찾는 것 같아보이는데(?) 왜 그런걸까요? ( 안쓰는 버전들의 jdk를 좀 지우긴 했어요..) 1-1 )Gradle 사용자 홈 설정에서 path를 설정하는데, gradle파일이 C:\Users\이름\.gradle C:\JavaSpring\hello-spring\gradle 이렇게 두 개 존재하는 것 같은데 어떤걸로 해야 하는 건가요 ? 제일 처음에 Gradle 사용자 홈 설정은 C:\JavaSpring\hello-spring\gradle 으로 되어있어서 이게 문제일까 싶어서 바꿨는데 어떤경로가 맞는건가요..? <에러화면> <각종 설정 화면> templates/index.html - localhost:8080/hello 안뜸.. 2번은 해결했습니다. 1번은 아직이에요 ㅠㅠㅠㅠ

  • java
  • spring
  • mvc
  • spring-boot
study 댓글 1 좋아요 0 조회수 335

스프링 부트 3버전으로 따라가시는 분들 참고하세요

미해결

스프링 시큐리티 OAuth2

build.gradle에서 implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity 5 :3.1.3.RELEASE' 가 아닌 implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity 6 :3.1.3.RELEASE' 으로 의존성을 설정해야 합니다. 스프링 부트 3버전부터는 타임리프 엑스트라에서 5가 아닌 6만 인식하여 동작하므로 5로 설정하면 인증 동작에 오류가 생겨서 아무리 빌드를 다시해도 isAuthentication()이 동작하지 않으니 logout이 안 사라집니다.

  • java
  • spring
  • spring-boot
  • oauth
kekim 댓글 1 좋아요 1 조회수 563

갑자기 빨간밑줄이 뜨며 실행이 안됩니다.

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? ( 예 /아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? ( 예 /아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? ( 예 /아니오) [질문 내용] 에러메시지는 package org.aspectj.lang does not exist 라고 뜨며 TimeTraceAop 클래스 내에 곳곳 빨간줄이 뜹니다. 왜그러죠?? package hello.hello_spring.aop; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.springframework.stereotype.Component; @Aspect @Component public class TimeTraceAop { @Around("execution(* hello.hello_spring..*(..))")//그 실행하는데 패키지 명 그리고 거기 밑에 있는 거 여기에다가 여기다 클래스 명 등등에게 public Object execute( ProceedingJoinPoint joinPoint) throws Throwable {//서비스명만 측정하려면 hello.hello_spring.service long start = System.currentTimeMillis(); System.out.println("START: " + joinPoint.toString()); try { return joinPoint.proceed();//다음 메서드로 진행 } finally { long finish = System.currentTimeMillis(); long timeMs = finish - start; System.out.println("END: " + joinPoint.toString()+ " " + timeMs + "ms"); } } }

  • java
  • spring
  • mvc
  • spring-boot
sh hhyeogi365 댓글 1 좋아요 0 조회수 183

auto-ddl 기능이 안됩니다 ㅠㅠㅠ

미해결

실전! 스프링 데이터 JPA

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] auto-ddl 기능이 제대로 작동하지 않아서 문의드립니다. 간단한 문제인데 혼자 해결 못해서 죄송합니다. yml 파일 문법은 다 맞는 걸로 보이는데... 혹시 틀린 거 있으면 말씀해주세요 ㅠㅠ spring: datasource: url: jdbc:h2:tcp://localhost/~/datajpa username: sa password: driver-class-name: org.h2.Driver jpa: hibernate: ddl-auto: create properties: hibernate: show_sql: true format_sql: true logging.level: org.hibernate.SQL: debug # org.hibernate.type: trace import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.Id; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; @Entity @Getter @Setter @NoArgsConstructor @AllArgsConstructor public class Member { @Id @GeneratedValue private Long id; private String username; public Member(String username) { this.username = username; } } 혹시 몰라서 Member 엔티티 코드도 남깁니다!! 추가적으로 h2 데이터베이스에는 잘 접속하는 것 같아요 ㅠㅠ

  • java
  • spring
  • spring-boot
  • jpa
댓글 2 좋아요 0 조회수 168

@JsonIgnore가 실무에서 쓰이는 경우가 있나요?

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요. 주문 조회 ( /api/v1/simple-orders 와 /api/v1/orders ) api 학습하면서 궁금한 점이 생겼습니다. 강의를 들으며 postman으로 request 했을 때, v1 코드에서 쿼리를 날릴 시 양방향 연관관계에서 문제가 발생할 수 있다는 것을 배웠습니다. 예를 들어, order list를 return했을 때, member 와 delivery 에 대한 프록시 객체로부터 필드를 조회해서 영속 상태의 객체를 반환하도록 구성한다면 v1에서는 @JsonIgnore 로 양방향 연관관계에 대한 처리 코드를 작성해주어야만 이 문제가 해결되는 것으로 이해했습니다. 그런데 Dto를 만들어 반환하게 되면 @JsonIgnore 을 없애도 이러한 문제가 사라지니, 사실상 @JsonIgnore 을 실무에서 사용하는 일은 없지 않을까라는 생각이 들었습니다. 또한, 실무에서 양방향 매핑보다는 단방향 매핑을 선호하는 것으로 알고 있어 질문드립니다. 실무에서 이런 코드( @JsonIgnore )를 작성할 일이 있다면, 어떠한 경우인 지 예시가 있을까요?

  • java
  • spring
  • spring-boot
  • jpa
haisley 댓글 1 좋아요 0 조회수 143

dependencies 셋팅 부분에서 에러가 발생하네요

미해결

윤재성의 만들면서 배우는 Spring MVC 5

안녕하세요 강 프로젝트 세팅부분에서 javax.servlet groupId dependencies 에서 에러가 발생하는데 <properties> <javax.servlet-version>4.0.1</javax.servlet-version> <javax.servlet.jsp-version>2.3.3</javax.servlet.jsp-version> <javax.servlet.jsp.jstl-version>1.2</javax.servlet.jsp.jstl-version> <org.springframework-version>5.2.2.RELEASE</org.springframework-version> </properties> <!-- 라이브러리 셋팅 --> <dependencies> <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>${javax.servlet-version}</version> <scope>provided</scope> </dependency> <!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api --> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>javax.servlet.jsp-api</artifactId> <version>${javax.servlet.jsp-version}</version> <scope>provided</scope> </dependency> 에러 발생 Missing artifact javax.servlet:javax.servlet-api:jar:1.2 입니다 .

  • java
  • spring
  • mvc
  • xml
wjlee1 댓글 1 좋아요 0 조회수 351

배열 for문 할때 질문입니다

미해결

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. package array; public class EnhancedFor1 { public static void main(String[] args) { int[] numbers = {1, 2, 3, 4, 5}; //일반 for문 for (int i = 0; i < numbers.length; i++){ int number = numbers[i]; System.out.println(number); } 이 부분에서 int number = numbers[i]; 부분을 없애고 밑에 줄을 System.out.println(numbers[i]); 로 바꿔도 결과값이 똑같이 나오던데 그렇게 하면 안되는 건가요? 배열의 요소에서 값을 꺼내서 number라는 변수에 항상 담아두게 코드를 짜야하는건지 궁금합니다.

  • java
  • 객체지향
강민서 댓글 2 좋아요 0 조회수 157

404에러가 계속 뜹니다.

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/ 아니오 ) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? ( 예 /아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? ( 예 /아니오) [질문 내용] 404에러가 뜹니다. 폴더 경로라랑 빌드 그래들 등등 보여드리겠습니다.

  • java
  • spring
  • mvc
  • spring-boot
sh hhyeogi365 댓글 2 좋아요 0 조회수 238

코틀린 val 질문

미해결

자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)

클래스 속성에 val로 정의할 경우 속성 값을 외부로 반환할 때 getter 메소드를 만들어서 반환하시나요? 아니면 속성 그대로 인스턴스.속성 으로 바로 반환하시나요?? 만약에 후자일 경우 캡슐화 위반이 아닌지 생각이 듭니다...

  • java
  • kotlin
  • 객체지향
terry9611 댓글 2 좋아요 0 조회수 196

2025 강의

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

질문은 동영상 강의에 들어가서 오른쪽에 커뮤니티 버튼을 통해 해주세요. 그래야 어떤 강좌에서 질문하셨는지 알 수 있습니다. 영상에서 몇 분 몇 초 대를 알려주셔야 제가 한 번에 질문 내용 확인이 가능합니다. 이미 다른 누군가가 질문을 한 이력 이 있을 수 있습니다. 질문 게시판을 한 번 확인 부탁드립니다. 학교의 과제나 타 강사의 코드 등 외부 수업 자료에 대해서는 답변하지 않습니다. 제가 다루는 커리큘럼 외의 이론이나, 너무 디테일한 컴퓨터 이론에 대해서는 답변 드리지 않습니다. 시험에 안 나오는 경우가 많고, 나와 봤자 1문제 나오는데 외워야 할 부분이 많은 것 등 (예시: 서브넷 마스크 계산) 질문을 올릴 때 이 글은 모두 지우고 내용을 입력해주세요. 유튜브로 3회차 합격률 영상보다가 20프로 할인한다는 거 보고 구매했습니다. 2025년도 되면 강의라든가 24년도 3회차 기출문제 풀이 이런것도 최신화가 되나요??

  • python
  • java
  • c
  • 정보처리기사
김기환 댓글 3 좋아요 0 조회수 121

오디오만 나옵니다

미해결

김영한의 실전 자바 - 기본편

오디오만 재생되고 화면이 안나옵니다.

  • java
  • 객체지향
댓글 1 좋아요 0 조회수 153

metaspace 관련 문의드립니다.

해결됨

기초 탄탄! 독하게 시작하는 Java - Part 2 : OOP와 JVM

안녕하세요. 좋은 강의라 너무 잘 듣고 있습니다. metaspace 관련하여 궁금한 점이 있습니다. "세대별 컬렉션 이론" 강의 - 13:00의 heap 영역 그림을 보시면, metaspace가 heap 영역 내부에 포함이 되어있는데, 자바 8버전 이후로 Permanent Generation 영역이 metaspace로 변경되면서 heap 내부가 아니라 네이티브 메모리로 넘어간게 아닌가요? -XX:MaxPermSize 옵션도 없어진 것으로 알고 있습니다. 관련 내용 확인 부탁드립니다. 감사합니다. :)

  • java
  • 객체지향
  • jvm
  • data-structure
Seokwon Kang 댓글 2 좋아요 0 조회수 211

@OneToOne 관계에서 연관 관계 주인이 아닌 쪽에서 LAZY가 적용되지 않는 문제

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] LAZY를 적용하면 프록시 객체가 할당되는데, @OneToOne에서 연관 관계 필드가 null이라면 연관 관계 엔티티가 없다는 의미이고, 프록시 객체가 할당되었다는 것은 연관 관계에 해당하는 엔티티가 있다는 것을 의미한다고 이해했습니다. (프록시 객체는 연관관계 엔티티가 있을시 단지 조회를 늦추는 역할을 하는데 기여하는 객체라고 이해했습니다.) @Entity @Table(name = "Users") public class User { @Id @GeneratedValue @Column(name = "USER_ID") private Long id; @OneToOne(fetch = FetchType.LAZY) @JoinColumn(name = "CART_ID") private Cart cart; } @Entity public class Cart { @Id @GeneratedValue private Long id; @OneToOne(mappedBy = "cart") private User user; } 위 예시 코드를 토대로 설명해본다면 연관관계 주인(User)에서 Cart를 조회시 실제 DB 테이블 관점에서 보면, FK에 null이 들어가 있으면 연관 관계 엔티티가 없다는 것을 의미하므로 cart 연관 관계 필드에 null을 할당할 수 있고, 반대로 FK에 null이 아닌 값이 있으면 연관 관계 엔티티가 있다는 뜻이어서 프록시 객체를 할당할 수 있습니다. 이렇게 되면 프록시 객체에 접근할 때 LAZY로 처리가 가능하다고 이해했습니다. 하지만 반대로, 연관관계 주인이 아닌 (Cart)에서 User를 조회 시 실제 DB 테이블 관점에서 보면, 연관 관계의 주인이 아닌 테이블(Cart)에서는 FK 컬럼 자체가 없기 때문에 해당 테이블만 읽어서 연관 관계의 엔티티가 있는지 알 수 없습니다. 예를 들어, ’나를 참조하는 애가 누구지?’라는 문제입니다. 이런 상태에서는 user 연관 관계 필드에 null을 넣기도 애매하고, 프록시 객체를 만들기도 애매하기 때문에 EAGER 방식으로 동작한다고 생각해도 될까요?

  • java
  • jpa
cksg 댓글 1 좋아요 0 조회수 136

CustomOAuth2AuthenticationFilter 구현 중 질문

미해결

스프링 시큐리티 OAuth2

CustomOAuth2AuthenticationFilter으로 인증까지 처리 후 home으로 리다이렉션을 하는거 까지 구현을 하였는데요 HomeController에서 인증객체를 가져오려고 하면 null을 가져오는데요 CustomOAuth2AuthenticationFilter에서 securitycontext에 저장하였다가 리다이렉션할 때 새로운 스레드에서 이것을 처리해서 그 스레드에는 securityContextHolder에는 인증객체가 없는 거 같은거 같은데 해결방법이 있을까요 nio-8081-exec-2 스레드는 customFilter에서 holder에 제대로 저장하는데 리다이렉션 후 home에서는 nio-8081-exec-3이 받습니다.

  • java
  • spring
  • spring-boot
  • oauth
hoonseung 댓글 2 좋아요 0 조회수 161

인기 태그

인프런 TOP Writers

주간 인기글