From db77c7deec83c23fb598a4088230ee9844ce6fb3 Mon Sep 17 00:00:00 2001 From: Mathilde Lorrain <mlorrain@takima.fr> Date: Tue, 27 Feb 2024 11:43:27 +0100 Subject: [PATCH] feat: change resource witout s --- back-skeleton/initdb/1_TABLES.sql | 6 +-- back-skeleton/initdb/2_DEFAULT_ENTRIES.sql | 40 +++++++++---------- .../controllers/StudentController.java | 5 +++ .../takima/backskeleton/dao/StudentDao.java | 4 ++ .../takima/backskeleton/models/Course.java | 2 +- .../com/takima/backskeleton/models/Major.java | 2 +- .../takima/backskeleton/models/Student.java | 5 +-- .../backskeleton/services/CourseService.java | 3 +- .../backskeleton/services/MajorService.java | 3 +- .../backskeleton/services/StudentService.java | 2 + .../src/main/resources/application.properties | 3 +- 11 files changed, 44 insertions(+), 31 deletions(-) diff --git a/back-skeleton/initdb/1_TABLES.sql b/back-skeleton/initdb/1_TABLES.sql index a71ee28..f21780c 100644 --- a/back-skeleton/initdb/1_TABLES.sql +++ b/back-skeleton/initdb/1_TABLES.sql @@ -1,4 +1,4 @@ -create table students +create table student ( id SERIAL PRIMARY KEY, first_name TEXT not null, @@ -8,14 +8,14 @@ create table students image bytea null ); -create table majors +create table major ( id SERIAL PRIMARY KEY, name TEXT not null, description TEXT not null ); -create table courses +create table course ( id SERIAL PRIMARY KEY, name TEXT not null, diff --git a/back-skeleton/initdb/2_DEFAULT_ENTRIES.sql b/back-skeleton/initdb/2_DEFAULT_ENTRIES.sql index 6efb65c..39d7e55 100644 --- a/back-skeleton/initdb/2_DEFAULT_ENTRIES.sql +++ b/back-skeleton/initdb/2_DEFAULT_ENTRIES.sql @@ -1,25 +1,25 @@ -INSERT INTO majors (name, description) VALUES ('Informatique', 'Expertise en développement informatique et solutions numériques'); -INSERT INTO majors (name, description) VALUES ('Batiment', 'Spécialisation dans la conception de structures solides et matériaux innovants'); -INSERT INTO majors (name, description) VALUES ('Aéronautique', 'Maîtrise des technologies aéronautiques et spatiales'); -INSERT INTO majors (name, description) VALUES ('Data', ' Gestion avancée des données avec un focus sur l''ingénierie des données'); -INSERT INTO majors (name, description) VALUES ('Energie & Environnement', 'Engagement pour des solutions énergétiques durables et respectueuses de l''environnement'); -INSERT INTO majors (name, description) VALUES ('Management', 'Formation axée sur les compétences de gestion pour diriger des équipes techniques'); -INSERT INTO majors (name, description) VALUES ('Santé', 'Connaissance approfondie de l''anatomie humaine et des technologies médicales'); -INSERT INTO majors (name, description) VALUES ('IArchitecture durable', ' Objectif de conception d''architectures durables avec un impact carbone minimal.'); -INSERT INTO majors (name, description) VALUES ('Industriel Durable', 'Exploration des concepts de design industriel avec un accent sur la durabilité'); +INSERT INTO major (name, description) VALUES ('Informatique', 'Expertise en développement informatique et solutions numériques'); +INSERT INTO major (name, description) VALUES ('Batiment', 'Spécialisation dans la conception de structures solides et matériaux innovants'); +INSERT INTO major (name, description) VALUES ('Aéronautique', 'Maîtrise des technologies aéronautiques et spatiales'); +INSERT INTO major (name, description) VALUES ('Data', ' Gestion avancée des données avec un focus sur l''ingénierie des données'); +INSERT INTO major (name, description) VALUES ('Energie & Environnement', 'Engagement pour des solutions énergétiques durables et respectueuses de l''environnement'); +INSERT INTO major (name, description) VALUES ('Management', 'Formation axée sur les compétences de gestion pour diriger des équipes techniques'); +INSERT INTO major (name, description) VALUES ('Santé', 'Connaissance approfondie de l''anatomie humaine et des technologies médicales'); +INSERT INTO major (name, description) VALUES ('IArchitecture durable', ' Objectif de conception d''architectures durables avec un impact carbone minimal.'); +INSERT INTO major (name, description) VALUES ('Industriel Durable', 'Exploration des concepts de design industriel avec un accent sur la durabilité'); -INSERT INTO students (first_name, last_name, birthdate, major_id) VALUES ('Paul', 'Harrohide', '2002-06-15', 1); -INSERT INTO students (first_name, last_name, birthdate, major_id) VALUES ('Jean', 'Bonbeur', '2001-08-21', 1); -INSERT INTO students (first_name, last_name, birthdate, major_id) VALUES ('Alain', 'Térieur', '2000-01-11', 1); +INSERT INTO student (first_name, last_name, birthdate, major_id) VALUES ('Paul', 'Harrohide', '2002-06-15', 1); +INSERT INTO student (first_name, last_name, birthdate, major_id) VALUES ('Jean', 'Bonbeur', '2001-08-21', 1); +INSERT INTO student (first_name, last_name, birthdate, major_id) VALUES ('Alain', 'Térieur', '2000-01-11', 1); -INSERT INTO courses (name, hours) VALUES ('Spanish', 30); -INSERT INTO courses (name, hours) VALUES ('German', 30); -INSERT INTO courses (name, hours) VALUES ('Internet of Things', 30); -INSERT INTO courses (name, hours) VALUES ('Thermodynamic', 30); -INSERT INTO courses (name, hours) VALUES ('Anatomy', 30); -INSERT INTO courses (name, hours) VALUES ('Maths', 30); -INSERT INTO courses (name, hours) VALUES ('Java', 30); -INSERT INTO courses (name, hours) VALUES ('Lean Management', 30); +INSERT INTO course (name, hours) VALUES ('Spanish', 30); +INSERT INTO course (name, hours) VALUES ('German', 30); +INSERT INTO course (name, hours) VALUES ('Internet of Things', 30); +INSERT INTO course (name, hours) VALUES ('Thermodynamic', 30); +INSERT INTO course (name, hours) VALUES ('Anatomy', 30); +INSERT INTO course (name, hours) VALUES ('Maths', 30); +INSERT INTO course (name, hours) VALUES ('Java', 30); +INSERT INTO course (name, hours) VALUES ('Lean Management', 30); INSERT INTO student_course (student_id, course_id) VALUES (1, 7); diff --git a/back-skeleton/src/main/java/com/takima/backskeleton/controllers/StudentController.java b/back-skeleton/src/main/java/com/takima/backskeleton/controllers/StudentController.java index 2be06e1..5fa73bb 100644 --- a/back-skeleton/src/main/java/com/takima/backskeleton/controllers/StudentController.java +++ b/back-skeleton/src/main/java/com/takima/backskeleton/controllers/StudentController.java @@ -4,6 +4,8 @@ import com.takima.backskeleton.dto.StudentDto; import com.takima.backskeleton.models.Student; import com.takima.backskeleton.services.StudentService; import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Sort; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -13,7 +15,10 @@ import java.util.List; @RestController @RequiredArgsConstructor public class StudentController { + private final StudentService studentService; + + @GetMapping public List<Student> listStudents(@RequestParam(required = false) Integer majorId, @RequestParam(required = false) Integer courseId) { if (majorId != null && courseId !=null) { diff --git a/back-skeleton/src/main/java/com/takima/backskeleton/dao/StudentDao.java b/back-skeleton/src/main/java/com/takima/backskeleton/dao/StudentDao.java index 38a4c3b..b7e91db 100644 --- a/back-skeleton/src/main/java/com/takima/backskeleton/dao/StudentDao.java +++ b/back-skeleton/src/main/java/com/takima/backskeleton/dao/StudentDao.java @@ -1,14 +1,18 @@ package com.takima.backskeleton.dao; import com.takima.backskeleton.models.Student; +import org.springframework.data.domain.Example; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; +import org.springframework.stereotype.Component; import org.springframework.stereotype.Repository; import java.util.List; +import java.util.Optional; @Repository public interface StudentDao extends JpaRepository<Student, Long> { @Query("SELECT s FROM Student s JOIN s.courses c WHERE c.id= :courseId AND s.major.id = :majorId ") List<Student> findByMajorIdAndCourseId(int majorId, int courseId); + } diff --git a/back-skeleton/src/main/java/com/takima/backskeleton/models/Course.java b/back-skeleton/src/main/java/com/takima/backskeleton/models/Course.java index bf8cd46..d45d429 100644 --- a/back-skeleton/src/main/java/com/takima/backskeleton/models/Course.java +++ b/back-skeleton/src/main/java/com/takima/backskeleton/models/Course.java @@ -8,7 +8,7 @@ import lombok.NoArgsConstructor; import java.util.List; @Entity -@Table(name = "courses") +@Table(name = "course") @NoArgsConstructor @Getter public class Course { diff --git a/back-skeleton/src/main/java/com/takima/backskeleton/models/Major.java b/back-skeleton/src/main/java/com/takima/backskeleton/models/Major.java index fafbec7..4efcc83 100644 --- a/back-skeleton/src/main/java/com/takima/backskeleton/models/Major.java +++ b/back-skeleton/src/main/java/com/takima/backskeleton/models/Major.java @@ -8,7 +8,7 @@ import lombok.NoArgsConstructor; import java.util.List; @Entity -@Table(name = "majors") +@Table(name = "major") @Getter @NoArgsConstructor public class Major { diff --git a/back-skeleton/src/main/java/com/takima/backskeleton/models/Student.java b/back-skeleton/src/main/java/com/takima/backskeleton/models/Student.java index 33d861b..eb72f74 100644 --- a/back-skeleton/src/main/java/com/takima/backskeleton/models/Student.java +++ b/back-skeleton/src/main/java/com/takima/backskeleton/models/Student.java @@ -7,7 +7,7 @@ import java.time.Instant; import java.util.List; @Entity -@Table(name = "students") +@Table(name = "student") @Getter public class Student { @Id @@ -15,7 +15,6 @@ public class Student { private Long id; @Column private String firstName; - @Column private String lastName; private Instant birthdate; @ManyToMany @@ -24,7 +23,7 @@ public class Student { joinColumns = @JoinColumn(name = "student_id"), inverseJoinColumns = @JoinColumn(name = "course_id")) private List<Course> courses; - @ManyToOne(cascade = CascadeType.MERGE) + @ManyToOne(cascade = CascadeType.DETACH) @JoinColumn(name = "major_id") private Major major; diff --git a/back-skeleton/src/main/java/com/takima/backskeleton/services/CourseService.java b/back-skeleton/src/main/java/com/takima/backskeleton/services/CourseService.java index bd9e469..9136e6c 100644 --- a/back-skeleton/src/main/java/com/takima/backskeleton/services/CourseService.java +++ b/back-skeleton/src/main/java/com/takima/backskeleton/services/CourseService.java @@ -4,10 +4,11 @@ import com.takima.backskeleton.dao.CourseDao; import com.takima.backskeleton.models.Course; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; +import org.springframework.stereotype.Service; import java.util.List; -@Component +@Service @RequiredArgsConstructor public class CourseService { private final CourseDao courseDao; diff --git a/back-skeleton/src/main/java/com/takima/backskeleton/services/MajorService.java b/back-skeleton/src/main/java/com/takima/backskeleton/services/MajorService.java index 03b91dd..9a30c80 100644 --- a/back-skeleton/src/main/java/com/takima/backskeleton/services/MajorService.java +++ b/back-skeleton/src/main/java/com/takima/backskeleton/services/MajorService.java @@ -5,11 +5,12 @@ import com.takima.backskeleton.models.Major; import com.takima.backskeleton.models.Student; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; +import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; -@Component +@Service @RequiredArgsConstructor public class MajorService { private final MajorDao majorDao; diff --git a/back-skeleton/src/main/java/com/takima/backskeleton/services/StudentService.java b/back-skeleton/src/main/java/com/takima/backskeleton/services/StudentService.java index d186091..e11b189 100644 --- a/back-skeleton/src/main/java/com/takima/backskeleton/services/StudentService.java +++ b/back-skeleton/src/main/java/com/takima/backskeleton/services/StudentService.java @@ -5,6 +5,7 @@ import com.takima.backskeleton.dto.StudentDto; import com.takima.backskeleton.dto.StudentMapper; import com.takima.backskeleton.models.Student; import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -13,6 +14,7 @@ import java.util.ArrayList; import java.util.List; import java.util.NoSuchElementException; + @Service @RequiredArgsConstructor public class StudentService { diff --git a/back-skeleton/src/main/resources/application.properties b/back-skeleton/src/main/resources/application.properties index dbfa530..2ccf3e6 100644 --- a/back-skeleton/src/main/resources/application.properties +++ b/back-skeleton/src/main/resources/application.properties @@ -2,4 +2,5 @@ spring.datasource.url=jdbc:postgresql://localhost:5432/${DATABASE_NAME:database} spring.datasource.username=${DATABASE_USER:usr} spring.datasource.password=${DATABASE_PASSWORD:pwd} spring.servlet.multipart.max-file-size=10MB -spring.servlet.multipart.max-request-size=10MB \ No newline at end of file +spring.servlet.multipart.max-request-size=10MB +spring.jpa.generate-ddl=true \ No newline at end of file -- GitLab