diff --git a/src/main/java/fr/plil/sio/examen/api/Owner.java b/src/main/java/fr/plil/sio/examen/api/Owner.java index 6f20f83..9ee01d8 100644 --- a/src/main/java/fr/plil/sio/examen/api/Owner.java +++ b/src/main/java/fr/plil/sio/examen/api/Owner.java @@ -2,6 +2,7 @@ package fr.plil.sio.examen.api; import java.util.LinkedList; import java.util.List; +import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; @@ -24,7 +25,7 @@ public class Owner { @Column(name="NAME_O",nullable = false) private String name; - @OneToMany(mappedBy = "owner") + @OneToMany(mappedBy = "owner",cascade = CascadeType.REMOVE) private List animals = new LinkedList<>(); public Long getId() { diff --git a/src/main/java/fr/plil/sio/examen/services/AnimalServiceImpl.java b/src/main/java/fr/plil/sio/examen/services/AnimalServiceImpl.java index 2902c54..55a3e40 100644 --- a/src/main/java/fr/plil/sio/examen/services/AnimalServiceImpl.java +++ b/src/main/java/fr/plil/sio/examen/services/AnimalServiceImpl.java @@ -26,6 +26,7 @@ public class AnimalServiceImpl implements AnimalService { animal.setName(name); animal.setOwner(owner); animalRepository.save(animal); + owner.getAnimals().add(animal); return animal; } @@ -36,11 +37,15 @@ public class AnimalServiceImpl implements AnimalService { if(animal==null){ throw new IllegalArgumentException("animal must be not null"); } + //Si on ne trouve pas d'animaux avec le meme nom alors il n'est pas en base de données if(animalRepository.findByName(animal.getName()).size()==0){ + //On lance donc une exception throw new IllegalArgumentException("animal not in database"); } - animalRepository.delete(animal); + //Enfin, on le supprime + animalRepository.delete(animal.getId()); + animal.getOwner().getAnimals().remove(animal); } } diff --git a/src/main/java/fr/plil/sio/examen/services/CommentServiceImpl.java b/src/main/java/fr/plil/sio/examen/services/CommentServiceImpl.java index 9ae9435..04e4e01 100644 --- a/src/main/java/fr/plil/sio/examen/services/CommentServiceImpl.java +++ b/src/main/java/fr/plil/sio/examen/services/CommentServiceImpl.java @@ -26,7 +26,9 @@ public class CommentServiceImpl implements CommentService { @Override @Transactional public Comment add(Owner owner, Animal animal, String text) { - if(animal== null) { + + //Tests sur les paramètres + if(animal== null) { throw new IllegalArgumentException("name must be not null"); } if(owner == null) { @@ -35,26 +37,35 @@ public class CommentServiceImpl implements CommentService { if(text == null){ throw new IllegalArgumentException("text must be not null"); } + + //Création de l'object Comment Comment comment = new Comment(); comment.setAnimal(animal); comment.setReporter(owner); comment.setMessage(text); + //On le sauvegarde commentRepository.save(comment); + //Et one le return return comment; } @Override @Transactional public void delete(Comment comment) { + + //Tests sur les paramètres if(comment==null){ throw new IllegalArgumentException("comment must be not null"); } + //Si pas de messages avec le meme texte alors le commentaire n'est pas en base if(commentRepository.findByMessage(comment.getMessage()).size()==0){ - throw new IllegalArgumentException("Comment not in database"); + //On lance donc une exception + throw new IllegalArgumentException("Comment not in database"); } - commentRepository.delete(comment); + //On le supprime si pas d'exception ci dessus + commentRepository.delete(comment); } @Override @@ -63,6 +74,7 @@ public class CommentServiceImpl implements CommentService { if(animal == null){ throw new IllegalArgumentException("animal must be not null"); } + //Appel de la méthode findByAnimal de la classe CommentRepository return commentRepository.findByAnimal(animal); } @@ -72,6 +84,7 @@ public class CommentServiceImpl implements CommentService { if(reporter == null){ throw new IllegalArgumentException("reporter must be not null"); } + //Appel de la méthode findByReporter de la classe CommentRepository return commentRepository.findByReporter(reporter); } -- libgit2 0.21.2