2016-11-11 12 views
0

私は、mysqlを使ってORマッピングするためにhibernateを使ってプロジェクトを進めています。 私はnom、telephone、adresse、date_modificationのみを更新したいが、すべてのフィールドが更新されている。私はどこが間違っていたのか分かりません。この問題を理解するのを助けてください。続き は私が書かれているアクションクラスである:選択したフィールドのみを更新し、データベース内のすべてのカラムを更新しません

Test.java

public class Test { 
    static ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml"}); 
    /** 
    * @param args 
    */ 
    public static void main(String[] args) { 
    ajouterFournisseur("Fournisseur 1", "23421567", "ville 1", "rue 1", "4321"); 
     ajouterFournisseur("Fournisseur 2", "23421567", "ville 2", "rue 2", "4322"); 
     ajouterFournisseur("Fournisseur 3", "23421567", "ville 3", "rue 3", "4323"); 

     modifierFournisseur("1", "1", "Fournisseur 11", "21345678", "Ville 11", "Rue 11", "4212"); 
     listeFournisseur(); 
} 

    public static void ajouterFournisseur(String nom, String telephone, String ville, String rue, String code_postal) { 
      IFournisseurMetier metierFournisseur = (IFournisseurMetier) context.getBean("metierFournisseur"); 
      IAdresseMetier metierAdresse = (IAdresseMetier) context.getBean("metierAdresse"); 
      List<Fournisseurs> fournisseurs1 = metierFournisseur.listFournisseurs(); 
      FournisseurForm fournisseurForm = new FournisseurForm(metierFournisseur); 
      AdresseForm adresseForm = new AdresseForm(metierAdresse); 
      fournisseurForm.creerFournisseur(nom, telephone, adresseForm.creerAdresse(ville, rue, code_postal)); 
      List<Fournisseurs> fournisseurs2 = metierFournisseur.listFournisseurs(); 
      System.out.println("etat ajouter Fournisseur: "+(fournisseurs2.size()==fournisseurs1.size()+3)); 
    } 

private static void modifierFournisseur(String id_fournisseur, String id_adresse, 
      String nom_fournisseur, String telephone, String ville, String rue, String code_postal) { 
      IFournisseurMetier metierFournisseur = (IFournisseurMetier) context.getBean("metierFournisseur"); 
      IAdresseMetier metierAdresse = (IAdresseMetier) context.getBean("metierAdresse"); 
      FournisseurForm fournisseurForm = new FournisseurForm(metierFournisseur); 
      AdresseForm adresseForm = new AdresseForm(metierAdresse); 
      fournisseurForm.modifierFournisseur(id_fournisseur, nom_fournisseur, telephone, adresseForm.modifierAdresse(id_adresse, ville, rue, code_postal)); 
      if(adresseForm.getErreurs() != null){ 
      if(adresseForm.getErreurs().get("ville") != null){ 
        System.out.println((fournisseurForm.getErreurs().get("ville"))); 
       } 
       if(adresseForm.getErreurs().get("rue") != null){ 
        System.out.println((fournisseurForm.getErreurs().get("rue"))); 
       } 
       if(adresseForm.getErreurs().get("code_postal") != null){ 
        System.out.println((fournisseurForm.getErreurs().get("code_postal"))); 
       } 
      } 
      if((fournisseurForm.getErreurs() != null)){ 
       if(fournisseurForm.getErreurs().get("nom") != null){ 
        System.out.println((fournisseurForm.getErreurs().get("nom"))); 
       } 
       if(fournisseurForm.getErreurs().get("telephone") != null){ 
        System.out.println((fournisseurForm.getErreurs().get("telephone"))); 
       } 
      } 
      else{ 
       System.out.println((fournisseurForm.getResultat())); 
      } 
    } 

private static void listeFournisseur() { 
     IFournisseurMetier metierFournisseur = (IFournisseurMetier) context.getBean("metierFournisseur"); 
     for(Fournisseurs fournisseur : metierFournisseur.listFournisseurs()){ 
      if(fournisseur!=null) 
      System.out.println("Id_fournisseur: "+fournisseur.getId_fournisseur()); 
      System.out.println("Nom: "+fournisseur.getNom()); 
      System.out.println("Telephone: "+fournisseur.getTelephone()); 
      System.out.println("Ville: "+fournisseur.getAdresse().getVille()); 
      System.out.println("Rue: "+fournisseur.getAdresse().getRue()); 
      System.out.println("Code postal: "+fournisseur.getAdresse().getCode_postal()); 
      System.out.println("date d'ajout: "+fournisseur.getDate_ajout()); 
      System.out.println("date modification: "+fournisseur.getDate_modification()); 
      System.out.println("-----------------"); 
     } 
    } 
} 

FournisseurDaoImpl.java

public class FournisseurDaoImpl implements IFournisseurDao { 

    public Long ajouterFournisseur(Fournisseurs fournisseur) { 
     Session session = HibernateUtil.getSessionFactory().getCurrentSession(); 
     session.beginTransaction(); 
     session.save(fournisseur); 
     session.beginTransaction().commit(); 
     return fournisseur.getId_fournisseur(); 
    } 

    public void modifierFournisseur(Fournisseurs fournisseur) { 
     Session session = HibernateUtil.getSessionFactory().getCurrentSession(); 
     session.beginTransaction(); 
     session.update(fournisseur); 
     session.beginTransaction().commit(); 
    } 

    public void supprimerFournisseur(Long idFournisseur) { 
     Session session = HibernateUtil.getSessionFactory().getCurrentSession(); 
     session.beginTransaction(); 
     Articles article = (Articles) session.load(Articles.class, idFournisseur); 
     session.delete(article); 
     session.beginTransaction().commit(); 
    } 

    public List<Fournisseurs> listFournisseurs() { 
     Session session = HibernateUtil.getSessionFactory().getCurrentSession(); 
     session.beginTransaction(); 
     @SuppressWarnings("unchecked") 
     List<Fournisseurs> result = session.createQuery("from Fournisseurs").list(); 
     for (Fournisseurs fournisseur : result) { 
      Hibernate.initialize(fournisseur.getAdresse()); 
     } 
     session.getTransaction().commit(); 
     return result; 
    } 
    public Fournisseurs trouverFournisseurParId(Long idFournisseur) { 
     Session session = HibernateUtil.getSessionFactory().getCurrentSession(); 
     session.beginTransaction(); 
     return (Fournisseurs) session.get(Fournisseurs.class, idFournisseur); 
    } 

    public Fournisseurs trouverFournisseurParNom(String nom_fournisseur) { 
     Session session = HibernateUtil.getSessionFactory().getCurrentSession(); 
     session.beginTransaction(); 
     Criteria criteria = session.createCriteria(Fournisseurs.class); 
     criteria.add(Restrictions.like("nom", nom_fournisseur)); 
     return (Fournisseurs) criteria.uniqueResult(); 
    } 

} 

結果:すべてのフィールドのEclipseの私のコンソールで

INFO : org.springframework.context.support.ClassPathXmlApplicationContext - Refreshing org[email protected]190d1e8: startup date [Fri Nov 11 14:45:41 WAT 2016]; root of context hierarchy 
INFO : org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from class path resource [applicationContext.xml] 
INFO : org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor - JSR-330 'javax.inject.Inject' annotation found and supported for autowiring 
WARN : org.hibernate.util.DTDEntityResolver - recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide! 
WARN : org.hibernate.util.DTDEntityResolver - recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide! 
WARN : org.hibernate.util.DTDEntityResolver - recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide! 
WARN : org.hibernate.util.DTDEntityResolver - recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide! 
WARN : org.hibernate.util.DTDEntityResolver - recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide! 
WARN : org.hibernate.util.DTDEntityResolver - recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide! 
WARN : org.hibernate.util.DTDEntityResolver - recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide! 
WARN : org.hibernate.util.DTDEntityResolver - recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide! 
WARN : org.hibernate.util.DTDEntityResolver - recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide! 
WARN : org.hibernate.util.DTDEntityResolver - recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide! 
WARN : org.hibernate.util.DTDEntityResolver - recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide! 
INFO : org.springframework.beans.factory.support.DefaultListableBeanFactory - Pre-instantiating singletons in org.s[email protected]18da386: defining beans [datasource,persistenceUnitManager,entityManagerFactory,transactionManager,org.springframework.aop.config.internalAutoProxyCreator,org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0,org.springframework.transaction.interceptor.TransactionInterceptor#0,org.springframework.transaction.config.internalTransactionAdvisor,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,daoUtilisateur,metierUtilisateur,daoFournisseur,metierFournisseur,daoArticle,metierArticle,daoEntree,metierEntree,daoSortie,metierSortie,daoAdresse,metierAdresse,org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor]; root of factory hierarchy 
WARN : org.hibernate.util.DTDEntityResolver - recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide! 
WARN : org.hibernate.util.DTDEntityResolver - recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide! 
WARN : org.hibernate.util.DTDEntityResolver - recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide! 
WARN : org.hibernate.util.DTDEntityResolver - recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide! 
WARN : org.hibernate.util.DTDEntityResolver - recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide! 
WARN : org.hibernate.util.DTDEntityResolver - recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide! 
WARN : org.hibernate.util.DTDEntityResolver - recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide! 
WARN : org.hibernate.util.DTDEntityResolver - recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide! 
WARN : org.hibernate.util.DTDEntityResolver - recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide! 
WARN : org.hibernate.util.DTDEntityResolver - recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide! 
WARN : org.hibernate.util.DTDEntityResolver - recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide! 
WARN : org.hibernate.util.DTDEntityResolver - recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide! 
Hibernate: select fournisseu0_.ID_FOURNISSEUR as ID1_26_, fournisseu0_.NOM as NOM26_, fournisseu0_.TELEPHONE as TELEPHONE26_, fournisseu0_.DATE_AJOUT as DATE4_26_, fournisseu0_.DATE_MODIFICATION as DATE5_26_, fournisseu0_.id_adresse as id6_26_ from FOURNISSEURS fournisseu0_ 
Hibernate: insert into ADRESSE (VILLE, RUE, CODE_POSTAL) values (?, ?, ?) 
Hibernate: select this_.ID_FOURNISSEUR as ID1_26_0_, this_.NOM as NOM26_0_, this_.TELEPHONE as TELEPHONE26_0_, this_.DATE_AJOUT as DATE4_26_0_, this_.DATE_MODIFICATION as DATE5_26_0_, this_.id_adresse as id6_26_0_ from FOURNISSEURS this_ where this_.NOM like ? 
Hibernate: insert into FOURNISSEURS (NOM, TELEPHONE, DATE_AJOUT, DATE_MODIFICATION, id_adresse) values (?, ?, ?, ?, ?) 
Hibernate: update ADRESSE set VILLE=?, RUE=?, CODE_POSTAL=? where ID_ADRESSE=? 
Hibernate: select fournisseu0_.ID_FOURNISSEUR as ID1_26_, fournisseu0_.NOM as NOM26_, fournisseu0_.TELEPHONE as TELEPHONE26_, fournisseu0_.DATE_AJOUT as DATE4_26_, fournisseu0_.DATE_MODIFICATION as DATE5_26_, fournisseu0_.id_adresse as id6_26_ from FOURNISSEURS fournisseu0_ 
Hibernate: select adresse0_.ID_ADRESSE as ID1_22_1_, adresse0_.VILLE as VILLE22_1_, adresse0_.RUE as RUE22_1_, adresse0_.CODE_POSTAL as CODE4_22_1_, fournisseu1_.ID_FOURNISSEUR as ID1_26_0_, fournisseu1_.NOM as NOM26_0_, fournisseu1_.TELEPHONE as TELEPHONE26_0_, fournisseu1_.DATE_AJOUT as DATE4_26_0_, fournisseu1_.DATE_MODIFICATION as DATE5_26_0_, fournisseu1_.id_adresse as id6_26_0_ from ADRESSE adresse0_ left outer join FOURNISSEURS fournisseu1_ on adresse0_.ID_ADRESSE=fournisseu1_.ID_FOURNISSEUR where adresse0_.ID_ADRESSE=? 
etat ajouter Fournisseur: false 
Hibernate: select fournisseu0_.ID_FOURNISSEUR as ID1_26_, fournisseu0_.NOM as NOM26_, fournisseu0_.TELEPHONE as TELEPHONE26_, fournisseu0_.DATE_AJOUT as DATE4_26_, fournisseu0_.DATE_MODIFICATION as DATE5_26_, fournisseu0_.id_adresse as id6_26_ from FOURNISSEURS fournisseu0_ 
Hibernate: select adresse0_.ID_ADRESSE as ID1_22_1_, adresse0_.VILLE as VILLE22_1_, adresse0_.RUE as RUE22_1_, adresse0_.CODE_POSTAL as CODE4_22_1_, fournisseu1_.ID_FOURNISSEUR as ID1_26_0_, fournisseu1_.NOM as NOM26_0_, fournisseu1_.TELEPHONE as TELEPHONE26_0_, fournisseu1_.DATE_AJOUT as DATE4_26_0_, fournisseu1_.DATE_MODIFICATION as DATE5_26_0_, fournisseu1_.id_adresse as id6_26_0_ from ADRESSE adresse0_ left outer join FOURNISSEURS fournisseu1_ on adresse0_.ID_ADRESSE=fournisseu1_.ID_FOURNISSEUR where adresse0_.ID_ADRESSE=? 
Hibernate: insert into ADRESSE (VILLE, RUE, CODE_POSTAL) values (?, ?, ?) 
Hibernate: select this_.ID_FOURNISSEUR as ID1_26_0_, this_.NOM as NOM26_0_, this_.TELEPHONE as TELEPHONE26_0_, this_.DATE_AJOUT as DATE4_26_0_, this_.DATE_MODIFICATION as DATE5_26_0_, this_.id_adresse as id6_26_0_ from FOURNISSEURS this_ where this_.NOM like ? 
Hibernate: insert into FOURNISSEURS (NOM, TELEPHONE, DATE_AJOUT, DATE_MODIFICATION, id_adresse) values (?, ?, ?, ?, ?) 
Hibernate: update ADRESSE set VILLE=?, RUE=?, CODE_POSTAL=? where ID_ADRESSE=? 
Hibernate: select fournisseu0_.ID_FOURNISSEUR as ID1_26_, fournisseu0_.NOM as NOM26_, fournisseu0_.TELEPHONE as TELEPHONE26_, fournisseu0_.DATE_AJOUT as DATE4_26_, fournisseu0_.DATE_MODIFICATION as DATE5_26_, fournisseu0_.id_adresse as id6_26_ from FOURNISSEURS fournisseu0_ 
Hibernate: select adresse0_.ID_ADRESSE as ID1_22_1_, adresse0_.VILLE as VILLE22_1_, adresse0_.RUE as RUE22_1_, adresse0_.CODE_POSTAL as CODE4_22_1_, fournisseu1_.ID_FOURNISSEUR as ID1_26_0_, fournisseu1_.NOM as NOM26_0_, fournisseu1_.TELEPHONE as TELEPHONE26_0_, fournisseu1_.DATE_AJOUT as DATE4_26_0_, fournisseu1_.DATE_MODIFICATION as DATE5_26_0_, fournisseu1_.id_adresse as id6_26_0_ from ADRESSE adresse0_ left outer join FOURNISSEURS fournisseu1_ on adresse0_.ID_ADRESSE=fournisseu1_.ID_FOURNISSEUR where adresse0_.ID_ADRESSE=? 
Hibernate: select adresse0_.ID_ADRESSE as ID1_22_1_, adresse0_.VILLE as VILLE22_1_, adresse0_.RUE as RUE22_1_, adresse0_.CODE_POSTAL as CODE4_22_1_, fournisseu1_.ID_FOURNISSEUR as ID1_26_0_, fournisseu1_.NOM as NOM26_0_, fournisseu1_.TELEPHONE as TELEPHONE26_0_, fournisseu1_.DATE_AJOUT as DATE4_26_0_, fournisseu1_.DATE_MODIFICATION as DATE5_26_0_, fournisseu1_.id_adresse as id6_26_0_ from ADRESSE adresse0_ left outer join FOURNISSEURS fournisseu1_ on adresse0_.ID_ADRESSE=fournisseu1_.ID_FOURNISSEUR where adresse0_.ID_ADRESSE=? 
etat ajouter Fournisseur: false 
Hibernate: select fournisseu0_.ID_FOURNISSEUR as ID1_26_, fournisseu0_.NOM as NOM26_, fournisseu0_.TELEPHONE as TELEPHONE26_, fournisseu0_.DATE_AJOUT as DATE4_26_, fournisseu0_.DATE_MODIFICATION as DATE5_26_, fournisseu0_.id_adresse as id6_26_ from FOURNISSEURS fournisseu0_ 
Hibernate: select adresse0_.ID_ADRESSE as ID1_22_1_, adresse0_.VILLE as VILLE22_1_, adresse0_.RUE as RUE22_1_, adresse0_.CODE_POSTAL as CODE4_22_1_, fournisseu1_.ID_FOURNISSEUR as ID1_26_0_, fournisseu1_.NOM as NOM26_0_, fournisseu1_.TELEPHONE as TELEPHONE26_0_, fournisseu1_.DATE_AJOUT as DATE4_26_0_, fournisseu1_.DATE_MODIFICATION as DATE5_26_0_, fournisseu1_.id_adresse as id6_26_0_ from ADRESSE adresse0_ left outer join FOURNISSEURS fournisseu1_ on adresse0_.ID_ADRESSE=fournisseu1_.ID_FOURNISSEUR where adresse0_.ID_ADRESSE=? 
Hibernate: select adresse0_.ID_ADRESSE as ID1_22_1_, adresse0_.VILLE as VILLE22_1_, adresse0_.RUE as RUE22_1_, adresse0_.CODE_POSTAL as CODE4_22_1_, fournisseu1_.ID_FOURNISSEUR as ID1_26_0_, fournisseu1_.NOM as NOM26_0_, fournisseu1_.TELEPHONE as TELEPHONE26_0_, fournisseu1_.DATE_AJOUT as DATE4_26_0_, fournisseu1_.DATE_MODIFICATION as DATE5_26_0_, fournisseu1_.id_adresse as id6_26_0_ from ADRESSE adresse0_ left outer join FOURNISSEURS fournisseu1_ on adresse0_.ID_ADRESSE=fournisseu1_.ID_FOURNISSEUR where adresse0_.ID_ADRESSE=? 
Hibernate: insert into ADRESSE (VILLE, RUE, CODE_POSTAL) values (?, ?, ?) 
Hibernate: select this_.ID_FOURNISSEUR as ID1_26_0_, this_.NOM as NOM26_0_, this_.TELEPHONE as TELEPHONE26_0_, this_.DATE_AJOUT as DATE4_26_0_, this_.DATE_MODIFICATION as DATE5_26_0_, this_.id_adresse as id6_26_0_ from FOURNISSEURS this_ where this_.NOM like ? 
Hibernate: insert into FOURNISSEURS (NOM, TELEPHONE, DATE_AJOUT, DATE_MODIFICATION, id_adresse) values (?, ?, ?, ?, ?) 
Hibernate: update ADRESSE set VILLE=?, RUE=?, CODE_POSTAL=? where ID_ADRESSE=? 
Hibernate: select fournisseu0_.ID_FOURNISSEUR as ID1_26_, fournisseu0_.NOM as NOM26_, fournisseu0_.TELEPHONE as TELEPHONE26_, fournisseu0_.DATE_AJOUT as DATE4_26_, fournisseu0_.DATE_MODIFICATION as DATE5_26_, fournisseu0_.id_adresse as id6_26_ from FOURNISSEURS fournisseu0_ 
Hibernate: select adresse0_.ID_ADRESSE as ID1_22_1_, adresse0_.VILLE as VILLE22_1_, adresse0_.RUE as RUE22_1_, adresse0_.CODE_POSTAL as CODE4_22_1_, fournisseu1_.ID_FOURNISSEUR as ID1_26_0_, fournisseu1_.NOM as NOM26_0_, fournisseu1_.TELEPHONE as TELEPHONE26_0_, fournisseu1_.DATE_AJOUT as DATE4_26_0_, fournisseu1_.DATE_MODIFICATION as DATE5_26_0_, fournisseu1_.id_adresse as id6_26_0_ from ADRESSE adresse0_ left outer join FOURNISSEURS fournisseu1_ on adresse0_.ID_ADRESSE=fournisseu1_.ID_FOURNISSEUR where adresse0_.ID_ADRESSE=? 
Hibernate: select adresse0_.ID_ADRESSE as ID1_22_1_, adresse0_.VILLE as VILLE22_1_, adresse0_.RUE as RUE22_1_, adresse0_.CODE_POSTAL as CODE4_22_1_, fournisseu1_.ID_FOURNISSEUR as ID1_26_0_, fournisseu1_.NOM as NOM26_0_, fournisseu1_.TELEPHONE as TELEPHONE26_0_, fournisseu1_.DATE_AJOUT as DATE4_26_0_, fournisseu1_.DATE_MODIFICATION as DATE5_26_0_, fournisseu1_.id_adresse as id6_26_0_ from ADRESSE adresse0_ left outer join FOURNISSEURS fournisseu1_ on adresse0_.ID_ADRESSE=fournisseu1_.ID_FOURNISSEUR where adresse0_.ID_ADRESSE=? 
Hibernate: select adresse0_.ID_ADRESSE as ID1_22_1_, adresse0_.VILLE as VILLE22_1_, adresse0_.RUE as RUE22_1_, adresse0_.CODE_POSTAL as CODE4_22_1_, fournisseu1_.ID_FOURNISSEUR as ID1_26_0_, fournisseu1_.NOM as NOM26_0_, fournisseu1_.TELEPHONE as TELEPHONE26_0_, fournisseu1_.DATE_AJOUT as DATE4_26_0_, fournisseu1_.DATE_MODIFICATION as DATE5_26_0_, fournisseu1_.id_adresse as id6_26_0_ from ADRESSE adresse0_ left outer join FOURNISSEURS fournisseu1_ on adresse0_.ID_ADRESSE=fournisseu1_.ID_FOURNISSEUR where adresse0_.ID_ADRESSE=? 
etat ajouter Fournisseur: false 
Hibernate: select adresse0_.ID_ADRESSE as ID1_22_0_, adresse0_.VILLE as VILLE22_0_, adresse0_.RUE as RUE22_0_, adresse0_.CODE_POSTAL as CODE4_22_0_ from ADRESSE adresse0_ where adresse0_.ID_ADRESSE=? 
Hibernate: select fournisseu0_.ID_FOURNISSEUR as ID1_26_1_, fournisseu0_.NOM as NOM26_1_, fournisseu0_.TELEPHONE as TELEPHONE26_1_, fournisseu0_.DATE_AJOUT as DATE4_26_1_, fournisseu0_.DATE_MODIFICATION as DATE5_26_1_, fournisseu0_.id_adresse as id6_26_1_, adresse1_.ID_ADRESSE as ID1_22_0_, adresse1_.VILLE as VILLE22_0_, adresse1_.RUE as RUE22_0_, adresse1_.CODE_POSTAL as CODE4_22_0_ from FOURNISSEURS fournisseu0_ left outer join ADRESSE adresse1_ on fournisseu0_.id_adresse=adresse1_.ID_ADRESSE where fournisseu0_.ID_FOURNISSEUR=? 
Hibernate: update ADRESSE set VILLE=?, RUE=?, CODE_POSTAL=? where ID_ADRESSE=? 
Hibernate: select this_.ID_FOURNISSEUR as ID1_26_0_, this_.NOM as NOM26_0_, this_.TELEPHONE as TELEPHONE26_0_, this_.DATE_AJOUT as DATE4_26_0_, this_.DATE_MODIFICATION as DATE5_26_0_, this_.id_adresse as id6_26_0_ from FOURNISSEURS this_ where this_.NOM like ? 
Hibernate: update FOURNISSEURS set NOM=?, TELEPHONE=?, DATE_AJOUT=?, DATE_MODIFICATION=?, id_adresse=? where ID_FOURNISSEUR=? 
Hibernate: update ADRESSE set VILLE=?, RUE=?, CODE_POSTAL=? where ID_ADRESSE=? 
Hibernate: update ARTICLES set ID_FOURNISSEUR=null where ID_FOURNISSEUR=? 
Hibernate: select fournisseu0_.ID_FOURNISSEUR as ID1_26_, fournisseu0_.NOM as NOM26_, fournisseu0_.TELEPHONE as TELEPHONE26_, fournisseu0_.DATE_AJOUT as DATE4_26_, fournisseu0_.DATE_MODIFICATION as DATE5_26_, fournisseu0_.id_adresse as id6_26_ from FOURNISSEURS fournisseu0_ 
Hibernate: select adresse0_.ID_ADRESSE as ID1_22_1_, adresse0_.VILLE as VILLE22_1_, adresse0_.RUE as RUE22_1_, adresse0_.CODE_POSTAL as CODE4_22_1_, fournisseu1_.ID_FOURNISSEUR as ID1_26_0_, fournisseu1_.NOM as NOM26_0_, fournisseu1_.TELEPHONE as TELEPHONE26_0_, fournisseu1_.DATE_AJOUT as DATE4_26_0_, fournisseu1_.DATE_MODIFICATION as DATE5_26_0_, fournisseu1_.id_adresse as id6_26_0_ from ADRESSE adresse0_ left outer join FOURNISSEURS fournisseu1_ on adresse0_.ID_ADRESSE=fournisseu1_.ID_FOURNISSEUR where adresse0_.ID_ADRESSE=? 
Hibernate: select adresse0_.ID_ADRESSE as ID1_22_1_, adresse0_.VILLE as VILLE22_1_, adresse0_.RUE as RUE22_1_, adresse0_.CODE_POSTAL as CODE4_22_1_, fournisseu1_.ID_FOURNISSEUR as ID1_26_0_, fournisseu1_.NOM as NOM26_0_, fournisseu1_.TELEPHONE as TELEPHONE26_0_, fournisseu1_.DATE_AJOUT as DATE4_26_0_, fournisseu1_.DATE_MODIFICATION as DATE5_26_0_, fournisseu1_.id_adresse as id6_26_0_ from ADRESSE adresse0_ left outer join FOURNISSEURS fournisseu1_ on adresse0_.ID_ADRESSE=fournisseu1_.ID_FOURNISSEUR where adresse0_.ID_ADRESSE=? 
Hibernate: select adresse0_.ID_ADRESSE as ID1_22_1_, adresse0_.VILLE as VILLE22_1_, adresse0_.RUE as RUE22_1_, adresse0_.CODE_POSTAL as CODE4_22_1_, fournisseu1_.ID_FOURNISSEUR as ID1_26_0_, fournisseu1_.NOM as NOM26_0_, fournisseu1_.TELEPHONE as TELEPHONE26_0_, fournisseu1_.DATE_AJOUT as DATE4_26_0_, fournisseu1_.DATE_MODIFICATION as DATE5_26_0_, fournisseu1_.id_adresse as id6_26_0_ from ADRESSE adresse0_ left outer join FOURNISSEURS fournisseu1_ on adresse0_.ID_ADRESSE=fournisseu1_.ID_FOURNISSEUR where adresse0_.ID_ADRESSE=? 
Id_fournisseur: 1 
Nom: Fournisseur 11 
Telephone: 21345678 
Ville: Ville 11 
Rue: Rue 11 
Code postal: 4212 
date d'ajout: null 
date modification: 2016-11-11 14:45:46.0 
----------------- 
Id_fournisseur: 2 
Nom: Fournisseur 2 
Telephone: 23421567 
Ville: ville 2 
Rue: rue 2 
Code postal: 4322 
date d'ajout: 2016-11-11 14:45:46.0 
date modification: 2016-11-11 14:45:46.0 
----------------- 
Id_fournisseur: 3 
Nom: Fournisseur 3 
Telephone: 23421567 
Ville: ville 3 
Rue: rue 3 
Code postal: 4323 
date d'ajout: 2016-11-11 14:45:46.0 
date modification: 2016-11-11 14:45:46.0 
----------------- 

更新中です。

Hibernate: update FOURNISSEURS set NOM=?, TELEPHONE=?, DATE_AJOUT=?, DATE_MODIFICATION=?, id_adresse=? where ID_FOURNISSEUR=? 
+0

これは休止状態のオブジェクトを破ります。 –

+0

は解決策が見つからないということですか? –

+0

エンティティ 'Fournisseurs'にアノテーション[@DynamicUpdate](https://docs.jboss.org/hibernate/orm/5.2/javadocs/org/hibernate/annotations/DynamicUpdate.html)を追加しようとしましたか? –

答えて

0

溶液:

public class FournisseurDaoImpl implements IFournisseurDao { 
    @PersistenceContext 
    private EntityManager em; 
public void modifierFournisseurJPA(Fournisseurs fournisseur) { 
     em.merge(fournisseur); 
    } 
... 
} 
0

あなたがのhbm.xml使用しているとして、あなたはクラスノードに動的な更新=「true」属性を設定する必要があります。このような 。デフォルトはfalseなので、すべての列が更新されます。

参照: http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/mapping.html#mapping-declaration-class

+0

に解決できません。私はFournisseurs.hbm.xmlファイルを使用して –

+0

@Column(updatable = false)同じ問題 –

+0

私の編集した回答を参照してください –

0

Fournisseursの新しいオブジェクトを作成し、IDと更新したいそれぞれのフィールドを設定modifierFournisseur(Fournisseurs fournisseur)を呼び出している間。

添付されたJPAオブジェクトで設定したフィールドのみを更新する必要があります。

+0

ModifierFournisseur(Founisseurs fournisseur)が同じ問題を抱えているのを試した後。 –

関連する問題