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 :

Problème UPDATE entity JPA


Sujet :

Hibernate Java

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 116
    Points : 66
    Points
    66
    Par défaut Problème UPDATE entity JPA
    Bonjour,

    j'utilise les entity JPA et

    j'ai un problème lors de l'update d'un enregistrement,

    si le champ dans la table est à NOT-NULL et que je ne le renseigne pas parce que ce n'est pas cette valeur que je veux mettre à jour alors il plante avec le message suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    not-null property references a null or transient value
    Est-il possible de modifier qu'un seul champ même si plusieurs autre champ sont à NOT-NULL dans la table ?


    Exemple :


    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    @Entity
    @Table(name="TRANSACTION")
    @org.hibernate.annotations.Entity(
    		selectBeforeUpdate = true,
    		dynamicInsert = true,
    		dynamicUpdate = true,
    		optimisticLock = OptimisticLockType.ALL,
    		polymorphism = PolymorphismType.EXPLICIT
    )
    public class Transaction implements Serializable {
     
    	@SequenceGenerator(
        		name="TRANSACTION_SEQUENCE_GENERATOR",
        		sequenceName="SEQ_ID_TRANSACTION"
        )
        @Id @GeneratedValue(strategy=SEQUENCE, generator="TRANSACTION_SEQUENCE_GENERATOR")
    	@Column(name="ID_TRANSACTION")
    	private Integer idTransaction;
     
    	@Column(name="NO_DEMANDE")
    	private String noDemande;
     
    	@Column(name="CODE_ENTITE")
    	private String codeEntite;
     
    	@Column(name="ETAT")
    	private String etat;
     
    	@Column(name="DATE_TRANSACTION")
    	private Date dateTransaction;
    Si je veux modifier uniquement le champ etat je ne peux pas parce que les autre champ sont à not-null dans la table !

    Y-aurait-il une annotation à ajouter sur ces champs ?

    Merci de votre aide.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 92
    Points : 108
    Points
    108
    Par défaut
    Avec JPA ou Hibernate, la granularité, c'est l'objet => lors d'une mise à jour, ce n'est pas seulement une colonne que tu modifies, mais l'objet complet. A ma connaissance, il n'y a pas de technique de mapping pour demander la modification d'un seul champ (ou alors, il faut faire un bulk update avec JPA QL). Ce qu'il faut, c'est donc commencer par récupérer l'objet avec EntityManager.find() (l'objet entier est lu, et donc les propriétés correspondant aux colonnes NOT NULL aussi), puis modifier la propriété souhaitée) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    EntityManager em = ...
    Transaction t = em.find(Transaction.class, id);
    t.setXXX(xxx);

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 116
    Points : 66
    Points
    66
    Par défaut
    j'utilise hibernate.

    En fait lorsque l'on met la propriété :

    dynamicUpdate = true

    cela veut dire qu'il exécute un update uniquement sur le champ définis dans l'object TO qui va être mappé ensuite et EO, puis

    le saveOrUpadte(EO) est exécuté.

Discussions similaires

  1. Problème update
    Par elhani dans le forum Langage SQL
    Réponses: 1
    Dernier message: 18/08/2005, 12h30
  2. Problème UPDATE et LIKE
    Par Golork dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/08/2005, 16h01
  3. MSXML4 - <!DOCTYPE> Problème avec <!ENTITY> exte
    Par trent94 dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 11/07/2005, 17h20
  4. [Update]Problème update Eclipse
    Par tomate dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 05/04/2005, 11h14
  5. Problème UPDATE
    Par Eltaz dans le forum Langage SQL
    Réponses: 7
    Dernier message: 06/07/2004, 11h37

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