diff --git a/src/main/java/doit/jpastudy2/repository/PrizeWinner.java b/src/main/java/doit/jpastudy2/repository/PrizeWinner.java new file mode 100644 index 0000000..e01d9ae --- /dev/null +++ b/src/main/java/doit/jpastudy2/repository/PrizeWinner.java @@ -0,0 +1,33 @@ +package doit.jpastudy2.repository; + + +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Entity +@NoArgsConstructor +@Getter +public class PrizeWinner { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long id; + + private String item; + + private String name; + + private String email; + + @Builder + public PrizeWinner(String item, String name, String email) { + this.item = item; + this.name = name; + this.email = email; + } +} diff --git a/src/main/java/doit/jpastudy2/repository/PrizeWinnerRepository.java b/src/main/java/doit/jpastudy2/repository/PrizeWinnerRepository.java new file mode 100644 index 0000000..f6a2997 --- /dev/null +++ b/src/main/java/doit/jpastudy2/repository/PrizeWinnerRepository.java @@ -0,0 +1,8 @@ +package doit.jpastudy2.repository; + +import org.springframework.data.jpa.repository.JpaRepository; + +public interface PrizeWinnerRepository extends JpaRepository { + + PrizeWinner findByNameAndItem(String name, String item); +} diff --git a/src/test/java/doit/jpastudy2/repository/PrizeWinnerRepositoryTest.java b/src/test/java/doit/jpastudy2/repository/PrizeWinnerRepositoryTest.java new file mode 100644 index 0000000..546bc88 --- /dev/null +++ b/src/test/java/doit/jpastudy2/repository/PrizeWinnerRepositoryTest.java @@ -0,0 +1,91 @@ +package doit.jpastudy2.repository; + +import jakarta.transaction.Transactional; +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +import java.util.List; + +import static org.junit.jupiter.api.Assertions.*; + +@Transactional +@SpringBootTest +class PrizeWinnerRepositoryTest { + + @Autowired + private PrizeWinnerRepository prizeWinnerRepository; + + @Test + void saveTest(){ + PrizeWinner prizeWinner1 = PrizeWinner.builder() + .item("100만원") + .name("홍길동") + .email("asdf@gmail.com") + .build(); + + PrizeWinner prizeWinner2 = PrizeWinner.builder() + .item("50만원") + .name("김머머") + .email("qwer@ajou.ac.kr") + .build(); + + PrizeWinner prizeWinner3 = PrizeWinner.builder() + .item("30만원") + .name("박사무엘") + .email("zxcv@gmail.com") + .build(); + + PrizeWinner prizeWinner4 = PrizeWinner.builder() + .item("10만원") + .name("고길동") + .email("jkl00@naver.com") + .build(); + + prizeWinnerRepository.save(prizeWinner1); + prizeWinnerRepository.save(prizeWinner2); + prizeWinnerRepository.save(prizeWinner3); + prizeWinnerRepository.save(prizeWinner4); + + List all = prizeWinnerRepository.findAll(); + Assertions.assertThat(all.get(0).getItem()).isEqualTo("100만원"); + Assertions.assertThat(all.get(2).getName()).isEqualTo("박사무엘"); + } + + @Test + void findByNameAndItem(){ + + PrizeWinner prizeWinner1 = PrizeWinner.builder() + .item("100만원") + .name("홍길동") + .email("asdf@gmail.com") + .build(); + + PrizeWinner prizeWinner2 = PrizeWinner.builder() + .item("50만원") + .name("김머머") + .email("qwer@ajou.ac.kr") + .build(); + + PrizeWinner prizeWinner3 = PrizeWinner.builder() + .item("30만원") + .name("박사무엘") + .email("zxcv@gmail.com") + .build(); + + PrizeWinner prizeWinner4 = PrizeWinner.builder() + .item("10만원") + .name("고길동") + .email("jkl00@naver.com") + .build(); + + prizeWinnerRepository.saveAll(List.of(prizeWinner1, prizeWinner2, prizeWinner3, prizeWinner4)); + + PrizeWinner findWinner1 = prizeWinnerRepository.findByNameAndItem("고길동","10만원"); + PrizeWinner findWinner2 = prizeWinnerRepository.findByNameAndItem("김머머","50만원"); + + Assertions.assertThat(findWinner1.getName()).isEqualTo("고길동"); + Assertions.assertThat(findWinner2.getEmail()).isEqualTo("qwer@ajou.ac.kr"); + } +} \ No newline at end of file