inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

mappedBy로 연관관계의 거울인 인스턴스에 수정을 가하면..

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

mappedBy로 연관관계의 거울인 인스턴스에 수정을 가하면 데이터베이스에 변경 사항이 적용되지 않고 연관관계의 주인 엔티티를 수정해야 데이터베이스에 적용되는걸로 알고 있습니다. 하지만 Order 클래스의 orderItems가 mappedBy 속성으로 연관관계 거울로 설정되었는데 Order 클래스의 비즈니스 로직인 cancel 함수에서는 orderItem.cancel()을 호출하는데 이때 orderItem의 변경사항이 데이터베이스에 적용되나요? 그렇다면 mappedBy 속성으로 연관관계 거울 인스턴스라도 해당 인스턴스에 수정을 가하면 데이터베이스에 적용되는건가요? 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요.

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
hongjunehuke 댓글 1 좋아요 1 조회수 206

Querydsl 잘 되는데, 인텔리제이에서 빨간줄

해결됨

실전! Querydsl

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] Querydsl이 잘 작동하는데 (QHello 잘 만들어짐, 테스트 잘 성공함) 인텔리제이에서 빨간줄이 뜹니다. (아래 캡쳐 참고) 어떻게 해결할 수 있을까요?ㅜㅜ 참고로 annotation processors 설정은 이미 enable된 상태입니다.

  • java
  • jpa
스피커왕왕왕 댓글 2 좋아요 0 조회수 1302

@Transcational 적용 계층 질문(Controller 계층에서 Repository 계층 직접 접근시)

해결됨

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 어플리케이션 아키텍쳐 강의 내용 설명해주시면서, 영한님께서는 필요에 따라서 Controller 계층에서 Repository 계층에 직접 접근(Service계층을 거치지 않고)하는 것도 유연하게 허용하신다고 하셨는데요. 이런 경우에는 @Transcational 어디 계층에 적용하시는지와 이유가 궁금합니다. 제가 생각해보기로는 Controller 계층은 비즈니스 로직을 처리하는 계층의 개념은 아니니, Repository에 @Transactional을 다는게 적절해보이는데요. 이러면 Controller 계층에서 직접 접근하는 Repository 클래스들만 @Transactional 어노테이션이 붙어있고 Service 계층을 통해서 사용하는 대부분의 Repository들은 @Transactional 이 안 붙어있게되어(Service 계층에 @Transactional을 붙이니) 일관성이 조금 적어지지 않을까 하는 생각도 들기는 하네요.

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
박호정 댓글 1 좋아요 1 조회수 247

initValue, allocationSize 말고 증가되는 값 변경은 가능한가요?

해결됨

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] initValue는 초기값, allocationSize는 메모리 선점 할당값인데 시퀀스 값의 증가를 1에서 5씩 증가되는 값으로 변경하는 방법은 없는지 궁금합니다.

  • java
  • jpa
댓글 1 좋아요 1 조회수 186

다운캐스팅은 런타임오류??

해결됨

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

Object를 활용시에 다운캐스팅 과정이 필요했는데요. (String) Object 10 이것은 컴파일오류로 인식하지 않는 이유가 약간 이해가 가지 않습니다. 어떤 객체든지 Object가 최상위 부모니까 String으로 갈 수 있는데 가보니까 10이어서 예외가 터지는 시나리오 같은데, 컴파일러는 이를 미리 판단할 정도는 되지 않나요?? 컴파일러는 "Object에서 String? -> ok 가능" 이정도만 판단해주는건가요?

  • java
  • 객체지향
  • 코딩-테스트
  • 알고리즘
영한노게임 댓글 1 좋아요 0 조회수 289

jpa 커리큘럼 진행

미해결

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

예전에 로드맵 설명 보면 jpa1을 한 후 이론을 듣는 야생형 방향으로 하라 했는데 지금 강의 들어보면 jpa1편에서 자꾸 이론편 모르면 기본 다시 보고오라고 하는데 커리큘럼이 바뀐건가요? 이론편에서 프로젝트한다고 하는것도 그렇고, 강의를 이후에 다시 찍으신건가요? 이론 듣고 jpa1듣는걸로 바뀐건가요?

  • java
  • jpa
jwhong1515 댓글 1 좋아요 0 조회수 152

Chap_08 Quiz 호출에러

미해결

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

Exception in thread "main" java.lang.NullPointerException: Cannot invoke "chap_08.ditector.Detectable.detect()" because "this.detector" is null at chap_ 08.Camera .SpeedCam.detect( SpeedCam.java:28 ) at chap_08._Quiz_08.main(_Quiz_ 08.java:17 ) Process finis 호출할수 없다는 에러가 나오는데 혼자서 해결이 안되어,, 글남깁니다 ㅠㅠ

  • java
  • 객체지향
민우 홍 댓글 3 좋아요 0 조회수 268

JPA와 DB 설정, 동작확인 강의영상에서

해결됨

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

쿼리 파라미터 로그 남기기 - 스프링 부트 3.0 스프링 부트 3.0 이상을 사용하면 라이브러리 버전을 1.9.0 이상을 사용해야 한다. ``` implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0' 이거 했는데 퀴리부분이 이렇게 짤려서 나오는데 select next value for member_seq 어떻게 해결해야 하나요

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
jwhong1515 댓글 4 좋아요 0 조회수 396

WebFlux 방식에서 권한 동적 적용하려고 하는데 잘 안됩니다.

미해결

스프링 시큐리티 완전 정복 [6.x 개정판]

안녕하세요. 강사님 강의 듣고 WebFlux 방식에서도 프로그래밍 방식 또는 동적방식으로 권한을 적용해 보고자 이것저것 해보고 있는데요. WebFlux 방식에서는 DelegatingReactiveAuthorizationManager 클래스에서 private final List<ServerWebExchangeMatcherEntry<ReactiveAuthorizationManager<AuthorizationContext>>> mappings; 이 형식으로 mappings를 생성자로 넘겨주거나 생성될때 build add() 메서드로 한건식 넘겨주면 List 형식에 추가되어 요청이 들어오면 아래의 check메서드에서 해당 요청을 체크하는 것 같습니다. @Override public Mono<AuthorizationDecision> check(Mono<Authentication> authentication, ServerWebExchange exchange) { return Flux.fromIterable(this.mappings) .concatMap((mapping) -> mapping.getMatcher() .matches(exchange) .filter(MatchResult::isMatch) .map(MatchResult::getVariables) .flatMap((variables) -> { logger.debug(LogMessage.of(() -> "Checking authorization on '" + exchange.getRequest().getPath().pathWithinApplication() + "' using " + mapping.getEntry())); return mapping.getEntry().check(authentication, new AuthorizationContext(exchange, variables)); })) .next() .defaultIfEmpty(new AuthorizationDecision(false)); } 문제는 mappings 정보를 어떻게 만들어서 넘겨야 할지 감이 안옵니다. .pathMatchers(HttpMethod.GET, "/routes").permitAll() .pathMatchers(HttpMethod.POST, "/auth-server/**").permitAll() .pathMatchers(HttpMethod.POST,"/auth-service/auth/token").permitAll() .pathMatchers(HttpMethod.GET,"/auth-service/api/v1/users").hasRole("ROLE_USER") 이 4개의 pathMatchers를 아래의 형식으로 해서 List로 넘겨야 할듯 한데 어떻게 할 수 있을까요? ServerWebExchangeMatcherEntry<ReactiveAuthorizationManager<AuthorizationContext>>> new ServerWebExchangeMatcherEntry<ReactiveAuthorizationManager<AuthorizationContext>>( ServerWebExchangeMatchers.pathMatchers(HttpMethod.GET, "/auth-service/api/v1/users"), AuthorityReactiveAuthorizationManager.hasRole("ROLE_USER")) 위의 방법으로 객체를 하나하나 만들어서 넘겨보기도 했는데 Role이 지정된 건 적용이 됩니다. 그러나 permitAll()을 시켜줘야 하는 것들은 어떻게 적용시켜야 할지... 하루종일 방법을 찾아봤는데 내공 부족으로 인하여 못찾고 해매고 있습니다. 도움 부탁드립니다.

  • spring
  • spring-boot
  • spring-security
  • security
  • web-security
aanicall 댓글 2 좋아요 0 조회수 446

DTO getter 메서드

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

안녕하세요. 다름이 아니라 제가 혼자 연습하다가 헷갈리는 점이 있어서 질문드립니다!! 일단 JSON형식의 응답을 만들기 위해서 DTO에 멤버변수에 대한 getter메서드가 있어야 한다는 것은 알고 있습니다!! 그래서 아래 코드와 같이 응답 DTO를 만들었습니다. @Getter @Setter public class WeatherInfoResponse { private String baseDate; private String baseTime; private String category; private String fcstDate; private String fcstTime; private List<WeatherAndTemp> weatherAndTempList; public WeatherInfoResponse(List<WeatherAndTemp> weatherAndTempList) { this.weatherAndTempList = weatherAndTempList; } } 그런데 문제가 저 WeatherAndTemp 객체를 담는 리스트 부분입니다. 아래가 WeatherAndTemp 클래스입니다. @Getter public class WeatherAndTemp { private String weather; private String temp; public WeatherAndTemp(String weather, String temp) { this.weather = weather; this.temp = temp; } } 제가 헷갈리는 점이 처음에 WeatherAndTemp 클래스를 getter 메서드를 생성하지 않고 만들었다가 오류가 났었습니다. 그런데 getter 메서드를 생성하니 잘됩니다. 저는 원래 응답 DTO만 Getter가 필요하다고 알고 있었는데 저런 경우는 어떤 경우인가요? 응답 DTO의 멤버변수에 사용되는 클래스도 Getter 메서드를 만들어야 하나요?

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
JMJ 댓글 2 좋아요 0 조회수 324

세션 고정 공격 상황에 대해서 질문있습니다.

미해결

스프링 시큐리티 완전 정복 [6.x 개정판]

수업에서 배운 세션 고정 공격은 먼저 공격자가 서버에 로그인 인증을 완료한 후 세션ID를 받은 뒤에 피해자에게 몰래 심는 거잖아요. 해당 세션ID로 피해자가 서버에 접속하는 걸텐데, 서버 입장에선 공격자의 신상으로 이미 인증이 되어 있어서 피해자의 모든 요청에 허용을 하지 않을까요? 굳이 피해자가 다시 로그인을 하는 상황이 머릿속에 그려지지 않습니다. 또 피해자가 사이트에 접속했을 때 이미 인증이 되어 있기 때문에 다른 사람으로 로그인이 되어 있을테고, 그러면 오히려 공격자의 신상이 피해자에게 노출되는 꼴 아닌가요..? ㅎㅎ 그렇다고 피해자가 다시 로그인을 하기 위해서 로그아웃하는 순간 악의적인 세션ID는 더 이상 사용하지 못하게 되구요.. 궁금합니다!

  • spring
  • spring-boot
  • spring-security
  • security
  • web-security
김동민 댓글 2 좋아요 0 조회수 516

상속과 접근 제어

미해결

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

강의 내용과 똑같은 패키지로 Child와 Parent 클래스를 만들고나서 각각의 패키지에 main메서드가 있는 클래스를 만들고 Child와 Parent 객체를 생성해 접근이 어디까지 되는지를 확인해보고 아예 다른 패키지에 main메서드가 있는 클래스를 만들어서 Child와 Parent 객체를 생성해서 확인해보았는데 protected와 package-private 접근제어자 부분이 접근이 가능할줄 알았지만 안되는 경우가 나와서 제 예상과 너무 달라 많이 헷갈립니다. 그래서 궁금한건 실무에서 protected와 package-private를 사용 하나요?

  • java
ryudb0 댓글 1 좋아요 0 조회수 291

dto 관련 질문있습니다

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 처음에 updateItem에 id없이 그냥 form만 넘겨주니 Caused by: java.lang.IllegalArgumentException: id to load is required for loading 라는 오류가 떠서 컨트롤러에서 updateItem메소드에 form과 같이 id를 넘겨주니 해결됐습니다. 질문 : 수정페이지에서 제출을 하게되면 컨트롤러의 updateItem의 (updateItemDTO form)에 id도 저장되서 service로 넘어가는게 아닌가요?

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
나도 하고 싶어 개발자 댓글 2 좋아요 0 조회수 234

ScannerWhileEx4 변수 질문

해결됨

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? ( 예 /아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? ( 예 /아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? ( 예 /아니오) [질문 내용] 안녕하세요 선생님 수업을 듣다 궁금한 사항이 생겨서 여쭈어봅니다. 위 사진은 제가 작성한 코드 입니다. Q1 . 1번을 누르고 처음 내용을 입력하고 다시 1번을 눌러 새로운 정보를 입력 후 2번으로 합계를 보내면 따로 처음 total값과 두번째 total값을 더하는 식이 없고 누적시키는 로직도 작성을 하지 않아 정상적으로 작동이 되면 안될 것 같은데 정상적으로 합계가 나오고, 누적한 total 값이 자동으로 합산되는 이유가 궁금합니다. Q2. 일단 정상적으로 로직이 작동하여서 2번 결제를 선택 후 total 값을 확인하였고 변수를 초기화를 하지 않은것을 실행 후에 알게 되었는데, main에서 선언한 변수라 초기화가 되지 않고 값이 저장되어서 기록되는 것은 다른 질문을 보고 이해를 했지만 그렇게 되면 2번 결제 항목에서 초기화를 따로 시켜주지 않았는데도 불구하고 2번 결제를 선택 후 다시 1번으로 가서 값을 새로 입력하고 2번을 선택 하면 자동으로 초기화가 되어 새로 입력한 값만 불러와 졌는데 어떠한 원리로 이렇게 작동이 된것인지 궁금합니다. 항상 좋은 강의 감사합니다:)

  • java
  • 객체지향
텅텅빈머리속 댓글 1 좋아요 1 조회수 325

영한님 말씀대로 dto를 적용해보았는데 이렇게 하는게 맞을까요?

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 그런데 이렇게 작성했을때 수정하고 제출을 하면 Caused by: java.lang.IllegalArgumentException: id to load is required for loading 오류가 뜹니다

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
나도 하고 싶어 개발자 댓글 2 좋아요 0 조회수 364

RestAuthenticationFilter에 jwt 토큰을 추가하는 질문

미해결

스프링 시큐리티 완전 정복 [6.x 개정판]

안녕하세요 선생님 현재 실전 프로젝트 20 restDsl까지 적용하여 저의 개인 프로젝트를 진행 중에 있습니다 세션 방식은 문제없이 동작을 하지만 토큰으로 변경을 하고자 하니 문제가 생겼습니다 질문 1. 기존 RestAuthenticationFilter을 그대로 사용하고 RestAuthenticationSuccessHandler에서 인증이 완료가 되면 토큰을 발급하여 헤더로 보내주는 것이 가능할가요? 1 방식이 가능하다면 정상 발급된 토큰을 확인하는 필터를 RestAuthenticationFilter 앞에 추가하도록 하여 인증을 유지하고 싶습니다 또한 실제 인증 처리는 Provider 쪽에서 진행이 된다고 강의에서 배웠는데 JwtAuthenticationProvider라는 클래스를 따로 하나 만들어 또 하나의 restFilter를 생성하여 @Order로 우선순위를 주고 새로이 인증을 처리하는 방식이 맞을까요? 이상이 제가 질문 드리고 싶은 부분들 입니다. 혹시 틀린 점이나 추가해야 하는 점이 있다면 조언 부탁 드립니다..

  • spring
  • spring-boot
  • spring-security
  • security
  • web-security
응애자바 댓글 2 좋아요 0 조회수 295

혹시 webflux 방식에서도 동적 커스텀 권한 관리가 가능할까요?

미해결

스프링 시큐리티 완전 정복 [6.x 개정판]

안녕하세요. 강의 열심히 듣고 이것저것 많이 배우고 있습니다. 강사님 강의 중 동적으로 권한 정보를 읽어다 적용하는 부분을 배웠습니다. 혹시 webflux 방식에서도 동적 커스텀 권한 관리가 가능할까요? 자료를 찾아봐도 딱히 방법에 대해 자료가 많이 검색이 되지 않는데 가능 여부만이라도 확인이 가능할까 해서 여쭤봅니다.

  • spring
  • spring-boot
  • spring-security
  • security
  • web-security
aanicall 댓글 2 좋아요 0 조회수 255

1대다 패치조인시 페이징 기능 사용 불가 관련 질문

미해결

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

하이버네이트6 버전부터는 뻥튀기 데이터가 로그에서 찍히지 않는데 그러면 페이징 기능 써도 되는걸까요?

  • java
  • jpa
japark720 댓글 1 좋아요 1 조회수 385

Spring Boot 3.0 에서 OSIV 기본값 false

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] Spring Boot 3.0 이후 부터 OSIV 기본값이 false로 바뀐 것 같아요. 확인 해주시고 첨언 해주시면 좋을 것 같아요.

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

테스트 오류

미해결

실전! 스프링 데이터 JPA

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx ) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG ) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 테스트 할 때 ItemRepositoy 생성자 주입을 했는데 계속 null이라고 나와서요! 혹시 뭐가 문제인걸까요?? package study.datajpa.repository; import jakarta.persistence.Id; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import study.datajpa.entity.Item; import static org.junit.Assert.*; @SpringBootTest public class ItemRepositoryTest { @Autowired ItemRepository itemRepository; @Test public void save() { Item item = new Item("A"); itemRepository.save(item); } } package study.datajpa.repository; import org.springframework.data.jpa.repository.JpaRepository; import study.datajpa.entity.Item; public interface ItemRepository extends JpaRepository<Item, Long> { } package study.datajpa.entity; import jakarta.persistence.Entity; import jakarta.persistence.EntityListeners; import jakarta.persistence.Id; import lombok.AccessLevel; import lombok.NoArgsConstructor; import org.springframework.data.annotation.CreatedDate; import org.springframework.data.domain.Persistable; import org.springframework.data.jpa.domain.support.AuditingEntityListener; import java.time.LocalDateTime; @Entity @NoArgsConstructor(access = AccessLevel.PROTECTED) @EntityListeners(AuditingEntityListener.class) public class Item implements Persistable<String> { // @GeneratedValue @Id private String id; public Item(String id) { this.id = id; } @CreatedDate private LocalDateTime createdDate; @Override public String getId() { return id; } @Override public boolean isNew() { // 해당 데이터가 new냐 아니냐에 따라 새로운 객체인지 아닌지 판단 return createdDate == null; } } 아래는 오류 내용입니다 Cannot invoke "study.datajpa.repository.ItemRepository.save(Object)" because "this.itemRepository" is null java.lang.NullPointerException: Cannot invoke "study.datajpa.repository.ItemRepository.save(Object)" because "this.itemRepository" is null at study.datajpa.repository.ItemRepositoryTest.save(ItemRepositoryTest.java:19) at java.base/java.lang.reflect.Method.invoke(Method.java:580)

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

인기 태그

인프런 TOP Writers

주간 인기글