diff --git a/src/main/java/doit/jpastudy2/repository/Attendant.java b/src/main/java/doit/jpastudy2/repository/Attendant.java new file mode 100644 index 0000000..752a17d --- /dev/null +++ b/src/main/java/doit/jpastudy2/repository/Attendant.java @@ -0,0 +1,41 @@ +package doit.jpastudy2.repository; + + +import jakarta.persistence.*; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Entity +@NoArgsConstructor +@Getter +public class Attendant { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + + @Column(name = "n주차") + private int id; + + @Column(name = "이름") + private String name; + + @Column(name = "출석") + private String attendance; + + @Column(name = "지각") + private String late; + + @Column(name = "결석") + private String absence; + + @Builder + public Attendant(String name, String attendance, String late, String absence) { + this.name = name; + this.attendance = attendance; + this.late = late; + this.absence = absence; + } + + +} diff --git a/src/main/java/doit/jpastudy2/repository/AttendantRepository.java b/src/main/java/doit/jpastudy2/repository/AttendantRepository.java new file mode 100644 index 0000000..f66eaba --- /dev/null +++ b/src/main/java/doit/jpastudy2/repository/AttendantRepository.java @@ -0,0 +1,7 @@ +package doit.jpastudy2.repository; + +import org.springframework.data.jpa.repository.JpaRepository; + +public interface AttendantRepository extends JpaRepository { + Attendant findByName(String name); +} diff --git a/src/main/java/doit/jpastudy2/repository/Student.java b/src/main/java/doit/jpastudy2/repository/Student.java new file mode 100644 index 0000000..2031163 --- /dev/null +++ b/src/main/java/doit/jpastudy2/repository/Student.java @@ -0,0 +1,41 @@ +package doit.jpastudy2.repository; + + +import jakarta.persistence.*; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Entity +@NoArgsConstructor +@Getter +public class Student { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + + + @Column(name = "학번") + private int id; + + @Column(name = "이름") + private String name; + + @Column(name = "학년") + private int grade; + + @Column(name = "학과") + private String major; + + @Column(name = "메일") + private String email; + + @Builder + public Student(String name, int grade, String major, String email) { + this.name = name; + this.grade = grade; + this.major = major; + this.email = email; + } + +} diff --git a/src/main/java/doit/jpastudy2/repository/StudentRepository.java b/src/main/java/doit/jpastudy2/repository/StudentRepository.java new file mode 100644 index 0000000..5d2e0ea --- /dev/null +++ b/src/main/java/doit/jpastudy2/repository/StudentRepository.java @@ -0,0 +1,7 @@ +package doit.jpastudy2.repository; + +import org.springframework.data.jpa.repository.JpaRepository; + +public interface StudentRepository extends JpaRepository { + Student findByEmail(String email); +} diff --git a/src/test/java/doit/jpastudy2/repository/AttendantRepositoryTest.java b/src/test/java/doit/jpastudy2/repository/AttendantRepositoryTest.java new file mode 100644 index 0000000..d81eed0 --- /dev/null +++ b/src/test/java/doit/jpastudy2/repository/AttendantRepositoryTest.java @@ -0,0 +1,61 @@ +package doit.jpastudy2.repository; + +import jakarta.transaction.Transactional; +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +import java.util.List; + +@Transactional +@SpringBootTest +class AttendantRepositoryTest { + + @Autowired + private AttendantRepository attendantRepository; + + @DisplayName("save 테스트") + @Test + void test(){ + Attendant atd1 = Attendant.builder() + .attendance("O") + .build(); + + Attendant atd2 = Attendant.builder() + .absence("O") + .build(); + + attendantRepository.save(atd1); + attendantRepository.save(atd2); + + List attendants = attendantRepository.findAll(); + Assertions.assertThat(attendants).hasSize(2); + Assertions.assertThat(attendants.get(0).getAttendance()).isEqualTo("O"); + } + + @Test + void findByName() { + Attendant atd1 = Attendant.builder() + .name("고희준") + .build(); + + Attendant atd2 = Attendant.builder() + .name("준희고") + .build(); + + attendantRepository.saveAll(List.of(atd1, atd2)); + + Attendant result1 = attendantRepository.findByName("희준고"); + Attendant result2 = attendantRepository.findByName("준희고"); + Attendant result3 = attendantRepository.findByName("준희고"); + + Assertions.assertThat(result1).isNull(); + Assertions.assertThat(result2).isNotNull(); + Assertions.assertThat(result3.getName()).isEqualTo("준희고"); + + + + } +} \ No newline at end of file diff --git a/src/test/java/doit/jpastudy2/repository/StudentRepositoryTest.java b/src/test/java/doit/jpastudy2/repository/StudentRepositoryTest.java new file mode 100644 index 0000000..8ca7985 --- /dev/null +++ b/src/test/java/doit/jpastudy2/repository/StudentRepositoryTest.java @@ -0,0 +1,54 @@ +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; + +@Transactional +@SpringBootTest +class StudentRepositoryTest { + + @Autowired + private StudentRepository studentRepository; + + @Test + void test(){ + Student student1 = Student.builder() + .grade(4) + .major("사이버보안학과") + .build(); + + studentRepository.save(student1); + + List students = studentRepository.findAll(); + Assertions.assertThat(students).hasSize(1); + Assertions.assertThat(students.get(0).getGrade()).isEqualTo(4); + } + @Test + void findByEmail() { + Student student1 = Student.builder() + .grade(4) + .email("gmlwns904@ajou.ac.kr") + .build(); + + Student student2 = Student.builder() + .grade(3) + .email("wnsgml409@ajou.ac.kr") + .build(); + + studentRepository.save(student1); + studentRepository.save(student2); + + Student result1 = studentRepository.findByEmail("gmlwns904@ajou.ac.kr"); + Student result2 = studentRepository.findByEmail("gmlwns904@ajou.ac.kr"); + + Assertions.assertThat(result1).isNotNull(); + Assertions.assertThat(result2).isNotNull(); + Assertions.assertThat(result2).isNotEqualTo("gmlwns904@ajou.ac.kr"); + + } +} \ No newline at end of file