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

JPA Java Discussion :

Modifier une entité sans la persister


Sujet :

JPA Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2006
    Messages : 126
    Par défaut Modifier une entité sans la persister
    Bonjour,

    Je me trouve face à une tuile.
    Dans une application Web, je charge des entités relativement complexes, et les modifies pour présenter une sorte de "preview" que l'utilisateur est appelé à valider.
    Il est donc important pour moi que les changements faits sur ces entité ne soient pas persistés à ce moment là.
    Tout se passe bien jusqu'à-ce que j'ai également besoin de persister cetaines données annexes à ces "preview".
    La sauvegarde de ces données provoque aussi la persistance des entités modifiées bien qu'elle n'ait strictement aucun lien ...

    Vu la complexité des objets, j'ai besoin qu'ils restent managés pour que d'éventuel lazy-load puissent se faire

    Je cherche donc un moyen de dire a JPA2/Hibernate de mettre certaines entités en "read only".

    Merci de votre aide

  2. #2
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2011
    Messages : 14
    Par défaut
    Salut,

    Je pense que tu peux essayer de mettre des insertable = false ou updatable = false sur tes annotations @Column des tes entités concernées?

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2006
    Messages : 126
    Par défaut
    Bonjour,

    Ca pourrait sans doute fonctionner mais dans d'autres contextes j'ai besoin aussi de pouvoir persister mes entités

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    La solution la plus propre me semble quand même de faire les modification sur d'autres objets destinés purement à l'affichage. Ensuite, lors de la confirmation, tu prend ces données liées àl'affichage et tu les écrit dans les données jpa.

    C'est ça ou chipoter avec deux transactions distrinctes: une pour le preview, une pour le reste.

  5. #5
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Bonjour,
    La solution de tchize me semble la bonne, pour le faire proprement et sans danger, tu vas devoir transiter par d'autre objets qui seront à l'image de tes entités.Alors soit tu le fais à la main, soit tu utilises un framework, style Dozer par exemple qui fait essentiellement de la recopie d'objet.Il est très facile à prendre en main.C'est celui que nous utilisons dans nos applis java.

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2006
    Messages : 126
    Par défaut
    Je suis en train de creuser la piste du "read only" hibernate mais je ne suis pas sûr que ce soit bien ce qu'il me faut. Mes test actuels ne sont pas concluants
    http://docs.jboss.org/hibernate/orm/.../readonly.html

    J'avais pensé à faire des copies d'objet mais le faire manuellement me semblait être un overkill.
    Je vais creuser du côté du framework que tu proposes, DevServlet.

    Merci pour vos réponses

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 25/02/2015, 10h33
  2. Réponses: 2
    Dernier message: 29/03/2013, 20h58
  3. Réponses: 6
    Dernier message: 26/07/2009, 23h12
  4. modifier une propriété sans connaitre son nom
    Par cyberchand dans le forum C#
    Réponses: 2
    Dernier message: 17/04/2007, 17h17
  5. Modifier une page sans la recharger...
    Par Ylias dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 10/05/2006, 12h06

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