Bonjour tout le monde,
Je travaille actuellement sur une appli incluant la gestion de la persistance via hibernate, vous l'aurez deviné....
Dans cette application, je dois changer le champ id_utilisateur d'occurences d 'une table "logs" .
Je voudrais éviter alors de passer par des POJOS pour ne pas me retrouver avec un tableau en mémoire de taille trop conséquente(en effet, il peut y avoir beaucoup de logs correspondant à un user). Charger un tableau avec tous les logs correspondant à un User via une requete "get/search" puis les changer n'est alors pas une solution.
Je décide alors de passer par une requete HQL comme suit :
List<IHistoryEvent> historyEvents = getHibernateTemplate().find("from HistoryEventImpl h where h.id=1");
System.out.println(historyEvents.get(0).getUsername());
//getHibernateTemplate().bulkUpdate("UPDATE HistoryEventImpl h SET h.username='test' WHERE h.id=1");
getHibernateTemplate().flush();
getSession().createQuery("UPDATE HistoryEventImpl h SET h.username='test' WHERE h.id=1").executeUpdate();
getSession().flush();
List<IHistoryEvent> historyEvents2 = getSession().createQuery("from HistoryEventImpl where id=1").list();
Quelque soit la méthode que j'utilise: bulkUpdate() ou encore createQuery(), le résultat est le même :

Hibernate: select historyeve0_.PK_LOG_ID as PK1_18_, historyeve0_.EVT_USERNAME as EVT2_18_, historyeve0_.EVT_SCO_UUID as EVT3_18_, historyeve0_.EVT_COMPANY_NAME as EVT4_18_, historyeve0_.EVT_TRAINING_NAME as EVT5_18_, historyeve0_.EVT_TRAINING_PLAN_NAME as EVT6_18_, historyeve0_.EVT_SCO_NAME as EVT7_18_, historyeve0_.EVT_SCO_DURATION as EVT8_18_, historyeve0_.EVT_TEST_UID as EVT9_18_, historyeve0_.EVT_TRAINING_PLAN_ID as EVT10_18_, historyeve0_.EVT_COURSE_ID as EVT11_18_, historyeve0_.EVT_USER_ID as EVT12_18_, historyeve0_.EVT_EVENT as EVT13_18_, historyeve0_.EVT_FIRSTNAME as EVT14_18_, historyeve0_.EVT_LASTNAME as EVT15_18_, historyeve0_.EVT_DATE as EVT16_18_ from EVT_HISTORY historyeve0_ where historyeve0_.PK_LOG_ID=1

nico

09:41:38,263 WARN [FromElementType] Using non-qualified column reference [username -> ([EVT_USERNAME])]
09:41:38,264 WARN [FromElementType] Using non-qualified column reference [id -> ([PK_LOG_ID])]

Hibernate: update EVT_HISTORY set EVT_USERNAME='test' where PK_LOG_ID=1


Hibernate: select historyeve0_.PK_LOG_ID as PK1_18_, historyeve0_.EVT_USERNAME as EVT2_18_, historyeve0_.EVT_SCO_UUID as EVT3_18_, historyeve0_.EVT_COMPANY_NAME as EVT4_18_, historyeve0_.EVT_TRAINING_NAME as EVT5_18_, historyeve0_.EVT_TRAINING_PLAN_NAME as EVT6_18_, historyeve0_.EVT_SCO_NAME as EVT7_18_, historyeve0_.EVT_SCO_DURATION as EVT8_18_, historyeve0_.EVT_TEST_UID as EVT9_18_, historyeve0_.EVT_TRAINING_PLAN_ID as EVT10_18_, historyeve0_.EVT_COURSE_ID as EVT11_18_, historyeve0_.EVT_USER_ID as EVT12_18_, historyeve0_.EVT_EVENT as EVT13_18_, historyeve0_.EVT_FIRSTNAME as EVT14_18_, historyeve0_.EVT_LASTNAME as EVT15_18_, historyeve0_.EVT_DATE as EVT16_18_ from EVT_HISTORY historyeve0_ where historyeve0_.PK_LOG_ID=1

nico
La requête update semble bien passer mais le résultat n'est pas modifié. Pour info, j'ai vérifié que la requête était bonne et que le problème ne venait pas d'une synchro base/POJO.

Merci pour une éventuelle solution.