작성
·
204
0
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
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)
https://drive.google.com/file/d/1fvY6mWMEOU8Ce3QH15Kt13rA5FhSNCbw/view?usp=sharing
여기있습니다 :)
문제점은 위에 나와있는 Item 테스트 시 발생하는 오류입니다