fix: ji and site now reference each other directly instead of ids
This commit is contained in:
parent
5496bee4e6
commit
7a984cb7d2
@ -34,7 +34,7 @@ public class Instance {
|
|||||||
public User user;
|
public User user;
|
||||||
|
|
||||||
@ManyToOne
|
@ManyToOne
|
||||||
@JoinColumn(name = "practical_id")
|
@JoinColumn(name = "practical_id", nullable = false)
|
||||||
public Tp tp;
|
public Tp tp;
|
||||||
|
|
||||||
public Instance(String name, String ssh, String pwd, Long port, User user, Tp tp) {
|
public Instance(String name, String ssh, String pwd, Long port, User user, Tp tp) {
|
||||||
|
@ -10,6 +10,8 @@ import jakarta.persistence.Table;
|
|||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import jakarta.persistence.ManyToOne;
|
||||||
|
import jakarta.persistence.JoinColumn;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@ -24,13 +26,16 @@ public class Ji {
|
|||||||
public String description;
|
public String description;
|
||||||
public String respo;
|
public String respo;
|
||||||
public String date;
|
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.name = name;
|
||||||
this.description = description;
|
this.description = description;
|
||||||
this.respo = respo;
|
this.respo = respo;
|
||||||
this.date = date;
|
this.date = date;
|
||||||
this.siteId = siteId;
|
this.site = site;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,6 +14,9 @@ import lombok.AllArgsConstructor;
|
|||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
import jakarta.persistence.OneToMany;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@ -31,13 +34,15 @@ public class Site {
|
|||||||
public String name;
|
public String name;
|
||||||
public String description;
|
public String description;
|
||||||
public String address;
|
public String address;
|
||||||
public Set<Long> jiInSite;
|
|
||||||
|
@OneToMany(mappedBy = "site")
|
||||||
|
public List<Ji> jiInSite;
|
||||||
|
|
||||||
public Site(String name, String description, String address) {
|
public Site(String name, String description, String address) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.description = description;
|
this.description = description;
|
||||||
this.address = address;
|
this.address = address;
|
||||||
this.jiInSite = new HashSet<Long>();
|
this.jiInSite = new ArrayList<Ji>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -73,7 +73,7 @@ public class JiResource {
|
|||||||
})
|
})
|
||||||
public Response deleteJiByName(@QueryParam("name") String name) {
|
public Response deleteJiByName(@QueryParam("name") String name) {
|
||||||
try {
|
try {
|
||||||
jiService.deleteJiByName(name);
|
jiService.deleteJi(name);
|
||||||
return Response.ok().build();
|
return Response.ok().build();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
return Response.status(500).entity(Map.of("error", e.getMessage())).build();
|
return Response.status(500).entity(Map.of("error", e.getMessage())).build();
|
||||||
|
@ -20,9 +20,9 @@ public class JiService {
|
|||||||
@Transactional
|
@Transactional
|
||||||
public Ji createJi(String name, String description, String address, String respo, String site_name) {
|
public Ji createJi(String name, String description, String address, String respo, String site_name) {
|
||||||
Site site = siteService.getSiteByName(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);
|
jiRepository.persist(ji);
|
||||||
siteService.addJi(site, ji.id);
|
siteService.addJi(site, ji);
|
||||||
return ji;
|
return ji;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -45,15 +45,16 @@ public class JiService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public void deleteJiById(Long id) {
|
public void deleteJi(Long id) {
|
||||||
siteService.removeJi(siteService.getSiteById(getJiById(id).siteId), id);
|
Ji ji = getJiById(id);
|
||||||
|
siteService.removeJi(ji.site, ji);
|
||||||
jiRepository.deleteById(id);
|
jiRepository.deleteById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public void deleteJiByName(String name) {
|
public void deleteJi(String name) {
|
||||||
Ji ji = getJiByName(name);
|
Ji ji = getJiByName(name);
|
||||||
siteService.removeJi(siteService.getSiteById(ji.siteId), ji.id);
|
siteService.removeJi(ji.site, ji);
|
||||||
jiRepository.delete(ji);
|
jiRepository.delete(ji);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package fr.la_banquise.backend.services;
|
package fr.la_banquise.backend.services;
|
||||||
|
|
||||||
import fr.la_banquise.backend.data.model.Site;
|
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 fr.la_banquise.backend.data.repository.SiteRepository;
|
||||||
import jakarta.enterprise.context.ApplicationScoped;
|
import jakarta.enterprise.context.ApplicationScoped;
|
||||||
import jakarta.inject.Inject;
|
import jakarta.inject.Inject;
|
||||||
@ -39,13 +40,13 @@ public class SiteService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public void addJi(Site site, Long id){
|
public void addJi(Site site, Ji ji){
|
||||||
site.jiInSite.add(id);
|
site.jiInSite.add(ji);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public void removeJi(Site site, Long id){
|
public void removeJi(Site site, Ji ji){
|
||||||
site.jiInSite.remove(id);
|
site.jiInSite.remove(ji);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
|
Loading…
x
Reference in New Issue
Block a user