diff --git a/src/main/java/doit/jpastudy2/JpaRepository/Champion.java b/src/main/java/doit/jpastudy2/JpaRepository/Champion.java new file mode 100644 index 0000000..2ff34b9 --- /dev/null +++ b/src/main/java/doit/jpastudy2/JpaRepository/Champion.java @@ -0,0 +1,28 @@ +package doit.jpastudy2.JpaRepository; + +import jakarta.persistence.*; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Entity +@NoArgsConstructor +@Getter +public class Champion { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @Column(name = "Id_champion") + private Long id; + + private String name; + + private Integer cost; + + @Builder + public Champion(String name, int cost) { + this.name = name; + this.cost = cost; + } + +} diff --git a/src/main/java/doit/jpastudy2/JpaRepository/ChampionRepository.java b/src/main/java/doit/jpastudy2/JpaRepository/ChampionRepository.java new file mode 100644 index 0000000..5362cd6 --- /dev/null +++ b/src/main/java/doit/jpastudy2/JpaRepository/ChampionRepository.java @@ -0,0 +1,12 @@ +package doit.jpastudy2.JpaRepository; + +import org.springframework.data.jpa.repository.JpaRepository; + +public interface ChampionRepository extends JpaRepository { + + Champion findByName(String name); + + Champion findByCost(Integer cost); + + Champion findByNameAndCost(String name, Integer cost); +} diff --git a/src/main/java/doit/jpastudy2/JpaRepository/Mapping.java b/src/main/java/doit/jpastudy2/JpaRepository/Mapping.java new file mode 100644 index 0000000..b74b667 --- /dev/null +++ b/src/main/java/doit/jpastudy2/JpaRepository/Mapping.java @@ -0,0 +1,13 @@ +package doit.jpastudy2.JpaRepository; + +import jakarta.persistence.Entity; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Entity +@NoArgsConstructor +@Getter +public class Mapping { + + +} diff --git a/src/main/java/doit/jpastudy2/JpaRepository/Synergy.java b/src/main/java/doit/jpastudy2/JpaRepository/Synergy.java new file mode 100644 index 0000000..e5dcdbb --- /dev/null +++ b/src/main/java/doit/jpastudy2/JpaRepository/Synergy.java @@ -0,0 +1,27 @@ +package doit.jpastudy2.JpaRepository; + +import jakarta.persistence.*; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Entity +@NoArgsConstructor +@Getter +public class Synergy { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @Column(name = "Id_synergy") + private Long id; + + private String name; + + private Integer max_activate; + + @Builder + public Synergy(String name, Integer max_activate) { + this.name = name; + this.max_activate = max_activate; + } +} diff --git a/src/main/java/doit/jpastudy2/JpaRepository/SynergyRepository.java b/src/main/java/doit/jpastudy2/JpaRepository/SynergyRepository.java new file mode 100644 index 0000000..ce20ce5 --- /dev/null +++ b/src/main/java/doit/jpastudy2/JpaRepository/SynergyRepository.java @@ -0,0 +1,12 @@ +package doit.jpastudy2.JpaRepository; + +import org.springframework.data.jpa.repository.JpaRepository; + +public interface SynergyRepository extends JpaRepository { + + Synergy findByName(String name); + + Synergy findByMaxActivate(Integer maxActivate); + + Synergy findByNameAndMaxActivate(String name, Integer maxActivate); +} diff --git a/src/test/java/doit/jpastudy2/Jparepository/ChampionRepositoryTest.java b/src/test/java/doit/jpastudy2/Jparepository/ChampionRepositoryTest.java new file mode 100644 index 0000000..72eb92b --- /dev/null +++ b/src/test/java/doit/jpastudy2/Jparepository/ChampionRepositoryTest.java @@ -0,0 +1,47 @@ +package doit.jpastudy2.Jparepository; + +import doit.jpastudy2.JpaRepository.Champion; +import doit.jpastudy2.JpaRepository.ChampionRepository; +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; + +@Transactional +@SpringBootTest +public class ChampionRepositoryTest { + + @Autowired + private ChampionRepository championRepository; + + @Test + void test() { + Champion champion1 = Champion.builder() + .name("누누") + .cost(2) + .build(); + + Champion champion2 = Champion.builder() + .name("헤카림") + .cost(3) + .build(); + + + championRepository.save(champion1); + championRepository.save(champion2); + + Champion championTest = championRepository.findByCost(2); + Champion championTest2 = championRepository.findByName("헤카림"); + Champion championTest3 = championRepository.findByNameAndCost("누누", 2); + Champion championTest4 = championRepository.findByCost(5); + + Assertions.assertThat(championTest).isNull(); + Assertions.assertThat(championTest2).isNull(); + Assertions.assertThat(championTest3).isNull(); + Assertions.assertThat(championTest4).isNotNull(); + + System.out.println("First champion in DB : " + champion1.getName()); + System.out.println("Second champion in DB : " + champion2.getName()); + } +} diff --git a/src/test/java/doit/jpastudy2/Jparepository/SynergyRepositoryTest.java b/src/test/java/doit/jpastudy2/Jparepository/SynergyRepositoryTest.java new file mode 100644 index 0000000..79c4d79 --- /dev/null +++ b/src/test/java/doit/jpastudy2/Jparepository/SynergyRepositoryTest.java @@ -0,0 +1,48 @@ +package doit.jpastudy2.Jparepository; + +import doit.jpastudy2.JpaRepository.Synergy; +import doit.jpastudy2.JpaRepository.SynergyRepository; +import jakarta.transaction.Transactional; +import org.assertj.core.api.Assertions; +import org.springframework.boot.test.context.SpringBootTest; + +@Transactional +@SpringBootTest +public class SynergyRepositoryTest { + private SynergyRepository synergyRepository; + + void test() { + Synergy synergy1 = Synergy.builder() + .name("벌꿀술사") + .max_activate(7) + .build(); + + Synergy synergy2 = Synergy.builder() + .name("요새") + .max_activate(6) + .build(); + + Synergy synergy3 = Synergy.builder() + .name("쇄도자") + .max_activate(9) + .build(); + + synergyRepository.save(synergy1); + synergyRepository.save(synergy2); + synergyRepository.save(synergy3); + + Synergy synergyTest = synergyRepository.findByName("벌꿀술사"); + Synergy synergyTest2 = synergyRepository.findByMaxActivate(9); + Synergy synergyTest3 = synergyRepository.findByNameAndMaxActivate("쇄도자", 9); + Synergy synergyTest4 = synergyRepository.findByName("서리"); + + Assertions.assertThat(synergyTest).isNull(); + Assertions.assertThat(synergyTest2).isNull(); + Assertions.assertThat(synergyTest3).isNull(); + Assertions.assertThat(synergyTest4).isNotNull(); + + System.out.println("First synergy in DB : " + synergy1.getName()); + System.out.println("Second synergy in DB : " + synergy2.getName()); + System.out.println("Third synergy in DB : " + synergy3.getName()); + } +}