IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Boot Java Discussion :

comment utiliser PUT correctement en ne modifiant que un attribut avec mongo


Sujet :

Spring Boot Java

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut comment utiliser PUT correctement en ne modifiant que un attribut avec mongo
    Bonjour,

    avec spring boot je tente de modifier une valeur avec mongodb, voici l'insertion manuel de ma donnée:

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    	CommandLineRunner start(PageHtmlRepository pageHtmlRepository) {
    		return args -> {
    			//remplissage de page html
     
    			pageHtmlRepository.deleteAll();
    			Stream.of("contenuHtml").forEach(c -> {
    				System.out.println("ajotuer actualité ...");
    				pageHtmlRepository.save(new PageHtml(null,"je suis aquarell 22","aquarel"));
    			});

    ma configuration est très simple dans appplication.proprieties:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    spring.data.mongodb.uri=mongodb://localhost:27017/publication
    server.port=8787
    voici le résultat de ma donnée dans mogo admin:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    {"_id":"5d984c04eb810c7cba70d2a9","contentHtml":"je suis aquarell 22","routePublication":"aquarel","_class":"publication.entite.PageHtml"}
    j'ai ma donnée insérer correctement, et je souhaite faire un put pour modifier le "contentHtml"(côté front-end avec angular).
    Code angular : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        let updatePublication = document.getElementById('pageHTML');
        return this.http.put(
          this.hostWbsPagehtml + localStorage.getItem("paramUrl"), { "contentHtml": updatePublication.innerHTML }, {
            headers: new HttpHeaders(
              { 'Authorization': localStorage.getItem('token') }
            )
          }
        );

    voici le résultat dans mongo:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    {"_id":"5d984c04eb810c7cba70d2a9","contentHtml":"contenu modifier","_class":"publication.entite.PageHtml"}
    j'ai perdu "routePublication" après modification , par contre mon _id de mongo est le même.

    comment je dois faire correctement la modification dans mongo db, suis-je obligé de récupérer l'ancienne donnée ,et de modifier cette donnée avec le nouveau contenu
    afin qu'il ne puisse pas être supprimé ?

    ou il faut obligatoirement passer par mon dao , créer une méthode qui ne modifie que l'attribut concerné ?

    voici mon dao :

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    @RepositoryRestResource
    public interface PageHtmlRepository extends MongoRepository<PageHtml,String>{
       //    public List<Sommaire> findByroute(@Param("rt") String nameSommaire);
       @RestResource(path="/byRoute")
       public List<PageHtml> findByroutePublication(@Param("rt") String routePublication);
       String countByRoutePublication(String string);
    }

    merci de vos réponses

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    Utilise PATCH au lieu de PUT si tu veux faire une mise à jour partielle d'un entité.

    A+.

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut
    merci beaucoup,

    cela fonctionne , cela m'a éviter de chercher l'info supplémentaire(mais je l'avais quand même coder).

    Code anglular : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
      updateWysi() {
        let updatePublication = document.getElementById('pageHTML');
        return this.http.patch(
          this.hostWbsPagehtml + localStorage.getItem("paramUrl"), { "contentHtml": updatePublication.innerHTML }, {
            headers: new HttpHeaders(
              { 'Authorization': localStorage.getItem('token') }
            )
          }
        );
      }

    c'est la première fois que j'utilisais patch, je n'avais pas du tout penser à utiliser cela....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment utiliser bootstrap pour supprimer ou modifier une ligne d'un tableau
    Par AlexTheShooter dans le forum Développement Web en Java
    Réponses: 6
    Dernier message: 03/12/2015, 17h35
  2. [Oracle] Comment utiliser la requête update et modifier les données si les champs sont modifiés
    Par roswina dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 01/06/2015, 10h01
  3. comment utiliser correctement les sessions?
    Par cladsam dans le forum Langage
    Réponses: 5
    Dernier message: 06/02/2006, 11h56
  4. [C#] Comment utiliser correctement Stream.Read ?
    Par ArChAnGe76 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 20/12/2005, 20h48
  5. Comment utiliser correctement le debugger de DevCPP
    Par Le Furet dans le forum Dev-C++
    Réponses: 2
    Dernier message: 29/09/2005, 09h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo