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