diff --git a/src/main/java/fr/la_banquise/backend/data/model/Instance.java b/src/main/java/fr/la_banquise/backend/data/model/Instance.java index 42da592..aab3b06 100644 --- a/src/main/java/fr/la_banquise/backend/data/model/Instance.java +++ b/src/main/java/fr/la_banquise/backend/data/model/Instance.java @@ -34,7 +34,7 @@ public class Instance { public User user; @ManyToOne - @JoinColumn(name = "practical_id") + @JoinColumn(name = "practical_id", nullable = false) public Tp tp; public Instance(String name, String ssh, String pwd, Long port, User user, Tp tp) { diff --git a/src/main/java/fr/la_banquise/backend/data/model/Ji.java b/src/main/java/fr/la_banquise/backend/data/model/Ji.java index 95d9151..987761b 100644 --- a/src/main/java/fr/la_banquise/backend/data/model/Ji.java +++ b/src/main/java/fr/la_banquise/backend/data/model/Ji.java @@ -10,6 +10,8 @@ import jakarta.persistence.Table; import lombok.AllArgsConstructor; import lombok.NoArgsConstructor; import java.util.List; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.JoinColumn; @Entity @NoArgsConstructor @@ -24,13 +26,16 @@ public class Ji { public String description; public String respo; public String date; - public Long siteId; - public Ji(String name, String description, String respo, String date, Long siteId) { + @ManyToOne + @JoinColumn(name = "site_id") + public Site site; + + public Ji(String name, String description, String respo, String date, Site site) { this.name = name; this.description = description; this.respo = respo; this.date = date; - this.siteId = siteId; + this.site = site; } } diff --git a/src/main/java/fr/la_banquise/backend/data/model/Site.java b/src/main/java/fr/la_banquise/backend/data/model/Site.java index db3fc61..d832eef 100644 --- a/src/main/java/fr/la_banquise/backend/data/model/Site.java +++ b/src/main/java/fr/la_banquise/backend/data/model/Site.java @@ -14,6 +14,9 @@ import lombok.AllArgsConstructor; import lombok.NoArgsConstructor; import java.util.Set; import java.util.HashSet; +import jakarta.persistence.OneToMany; +import java.util.List; +import java.util.ArrayList; @Entity @NoArgsConstructor @@ -31,13 +34,15 @@ public class Site { public String name; public String description; public String address; - public Set jiInSite; + + @OneToMany(mappedBy = "site") + public List jiInSite; public Site(String name, String description, String address) { this.name = name; this.description = description; this.address = address; - this.jiInSite = new HashSet(); + this.jiInSite = new ArrayList(); } diff --git a/src/main/java/fr/la_banquise/backend/rest/JiResource.java b/src/main/java/fr/la_banquise/backend/rest/JiResource.java index 13a409d..9c81679 100644 --- a/src/main/java/fr/la_banquise/backend/rest/JiResource.java +++ b/src/main/java/fr/la_banquise/backend/rest/JiResource.java @@ -73,7 +73,7 @@ public class JiResource { }) public Response deleteJiByName(@QueryParam("name") String name) { try { - jiService.deleteJiByName(name); + jiService.deleteJi(name); return Response.ok().build(); } catch (Exception e) { return Response.status(500).entity(Map.of("error", e.getMessage())).build(); diff --git a/src/main/java/fr/la_banquise/backend/services/JiService.java b/src/main/java/fr/la_banquise/backend/services/JiService.java index 03b1e4c..a956d29 100644 --- a/src/main/java/fr/la_banquise/backend/services/JiService.java +++ b/src/main/java/fr/la_banquise/backend/services/JiService.java @@ -20,9 +20,9 @@ public class JiService { @Transactional public Ji createJi(String name, String description, String address, String respo, String site_name) { Site site = siteService.getSiteByName(site_name); - Ji ji = new Ji(name, description, address, respo, site.id); + Ji ji = new Ji(name, description, address, respo, site); jiRepository.persist(ji); - siteService.addJi(site, ji.id); + siteService.addJi(site, ji); return ji; } @@ -45,15 +45,16 @@ public class JiService { } @Transactional - public void deleteJiById(Long id) { - siteService.removeJi(siteService.getSiteById(getJiById(id).siteId), id); + public void deleteJi(Long id) { + Ji ji = getJiById(id); + siteService.removeJi(ji.site, ji); jiRepository.deleteById(id); } @Transactional - public void deleteJiByName(String name) { + public void deleteJi(String name) { Ji ji = getJiByName(name); - siteService.removeJi(siteService.getSiteById(ji.siteId), ji.id); + siteService.removeJi(ji.site, ji); jiRepository.delete(ji); } } diff --git a/src/main/java/fr/la_banquise/backend/services/SiteService.java b/src/main/java/fr/la_banquise/backend/services/SiteService.java index 2ea1743..0086770 100644 --- a/src/main/java/fr/la_banquise/backend/services/SiteService.java +++ b/src/main/java/fr/la_banquise/backend/services/SiteService.java @@ -1,6 +1,7 @@ package fr.la_banquise.backend.services; import fr.la_banquise.backend.data.model.Site; +import fr.la_banquise.backend.data.model.Ji; import fr.la_banquise.backend.data.repository.SiteRepository; import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; @@ -39,13 +40,13 @@ public class SiteService { } @Transactional - public void addJi(Site site, Long id){ - site.jiInSite.add(id); + public void addJi(Site site, Ji ji){ + site.jiInSite.add(ji); } @Transactional - public void removeJi(Site site, Long id){ - site.jiInSite.remove(id); + public void removeJi(Site site, Ji ji){ + site.jiInSite.remove(ji); } @Transactional