Requête hql.executeUpdate() ne fonctionne pas correctement

Requête hql.executeUpdate() ne fonctionne pas..

voici le code pour la mise à jour de

   public static void expDue(){
   Session session=HibernateUtil.getSessionFactory().openSession();
    java.util.Date utilDate=new java.util.Date();
    java.sql.Date sqldate=new java.sql.Date(utilDate.getTime());
    Format formatter = new SimpleDateFormat("yyyy-MM-dd");
    String a= formatter.format(sqldate);      
    boolean b=false;
    if(b==false){
    Query query = session.createQuery(" update Issue set dueStatus = 'true' where returnDate='"+a+"'");
    int result = query.executeUpdate();
    System.out.println(query.executeUpdate()+"Rows affected: " + result);
    b=true;
    }

ici le résultat de l'impression montre la valeur correcte,

mais pas de changement dans la base de données.

et le code hibernate

<hibernate-configuration>
<session-factory>
<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.HSQLDialect</property> 
<!-- Database connection settings --> 
<property name="hibernate.connection.driver_class">org.hsqldb.jdbcDriver</property>
<property name="hibernate.connection.url">jdbc:hsqldb:db/hsql/library;shutdown=true</property>
<property name="hibernate.connection.username">sa</property>
<property name="hibernate.connection.password">sa</property>
<property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property>
<!-- JDBC connection pool (use the built-in one) -->
<property name="connection.pool_size">1</property> 
<!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property>
<!-- Disable the second-level cache  --> 
<property
name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<!-- disable batching so HSQLDB will propagate errors correctly. -->
<property name="jdbc.batch_size">0</property> 
<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property> 
<!-- List all the mapping documents we're using --> 
<mapping class="com.habitz.librarymanagement.domain.Admin" />
<mapping class="com.librarymanagement.domain.Book" />
<mapping class="com.librarymanagement.domain.Category" />
<mapping class="com.librarymanagement.domain.Group" />
<mapping class="com.librarymanagement.domain.Issue" />
<mapping class="com.librarymanagement.domain.Member" />
</session-factory>
</hibernate-configuration>

Dans la console de l'impression de la valeur de résultats montrent des valeurs correctes. Mais la base de données ne montrent aucun changement..

si vous savez à ce sujet, veuillez partager ici les réponses..

Mise à JOUR

Transaction tx = null;
tx = session.beginTransaction();
Query query = session
.createQuery(" update Issue set dueStatus = 'true' where returnDate='"
+ a + "'");
int result = query.executeUpdate();
System.out.println(query.executeUpdate() + "Rows affected: "
+ result);  
tx.commit();
  • vous n'avez pas commit de la transaction dans la base de données.
  • la validation des transactions comme cette Transaction tx = null; tx = session.beginTransaction(); tx.commit();
  • - je mettre à jour mais ça ne marche toujours pas...
  • Pourquoi avez-vous sauté .executeUpdate()? Vous devez les effectuer et ensuite valider l'opération.
  • désolé c'est de ma faute. je le mettre à jour et pas de changement
  • Si le problème est résolu, merci de partager, quel était le problème? =)

InformationsquelleAutor Prasanth A R | 2014-02-28