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

Hibernate Java Discussion :

Update non sollicité


Sujet :

Hibernate Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    759
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 759
    Points : 159
    Points
    159
    Par défaut Update non sollicité
    Bonjour,

    ma classe ne fait pas référence à une table en base mais est mappée par rapport au résultat d'une requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    @Entity
    public class InfoDiverses implements Serializable {
     
    	@Id
    	@Column(name = "ROWNUM")
    	private Integer rownum;
     
    	@Column(name = "CHAMP1")
    	private Integer champ1;
     
    	@Column(name = "CHAMP2")
    	private Integer champ2;
     
            //getter, setter
     
    }
    Si je retravaille mes résultats en modifiant un champ, je me reçois une belle exception et en creusant, je vois qu'il essaie de faire un update.
    Naïvement, puisque je ne déclare pas de table (et quand bien même), je ne vois pas pourquoi il se produit une tentative d'update!!!

    Alors la solution que j'ai pour l'instant, c'est de faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	@Column(name = "CHAMP2", updatable=false)
    	private Integer champ2;
    Mais j'aimerais comprendre, voire ajouter une annotation générale valable pour tous mes champs si besoin.

    Merci.

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Mais là, tu déclares ta class en entity, donc elle sera mappée à une table du même nom...

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    759
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 759
    Points : 159
    Points
    159
    Par défaut
    Et donc que proposes-tu?

    parce que si j'enlève le tag
    @Entity
    , ça donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javax.persistence.PersistenceException: org.hibernate.MappingException: Unknown entity
    Et de toutes façons quand on désigne une table c'est :
    @Entity
    @Table(name = "MA_TABLE")

  4. #4
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Si je ne m'abuse le tag table est facultatif, c'est le nom de la classe qui sera utilisé pour le nom de la table.

    En fait, je ne comprends pas bien ce que tu veux faire.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    759
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 759
    Points : 159
    Points
    159
    Par défaut
    Citation Envoyé par fr1man Voir le message
    En fait, je ne comprends pas bien ce que tu veux faire.
    Ah bon?
    Je créer une classe prête à recevoir les données de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Query aQuery = em.createNativeQuery(request, InfoDiverses.class);
    return (List<InfoDiverses>) aQuery.getResultList();
    Et quand j'ai ma liste, dans certains cas je peux être amené à modifier des champs de mes objets InfoDiverses, et c'est là où ça tente de faire un update si je ne rajoute pas à mon champ la caractéristique updatable=false.

Discussions similaires

  1. Update non effectué
    Par nellynew dans le forum Access
    Réponses: 1
    Dernier message: 13/09/2006, 12h37
  2. Réponses: 7
    Dernier message: 28/07/2006, 21h21
  3. Update non fonctionnel
    Par kissmytoe dans le forum Access
    Réponses: 7
    Dernier message: 07/03/2006, 18h37
  4. Update non réussi à cause de la troncature de données
    Par m-mas dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 28/12/2005, 16h18
  5. Bip non sollicité sur les Edit
    Par David dans le forum Composants VCL
    Réponses: 2
    Dernier message: 09/09/2003, 20h32

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