Bonjour,
l'error StackOverflowError se produit lorsque j'essaie d'updater avec HQL plus de 30000 lignes d'une table de ma base de donnée.
voila la méthode que j'appelle pour l'update :
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
public void updateListValides(List<String> lst){
 
		String REQ_UPDATE = "update matable set statut = 1 where num in ";
		String clause_in = "";
		if(lst!=null && !lst.isEmpty()){
 
			Iterator<String> it = lst.iterator();
			clause_in = "'"+it.next()+"'";
			while(it.hasNext()){
				clause_in = clause_in +", '"+it.next()+"'";
			}
			REQ_UPDATE = REQ_UPDATE + "( " + clause_in + " )";
			update(REQ_UPDATE);
		}
	}
pour la méthode update :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
public void update(String hql){
		Session session = HibernateUtil.currentSession();
		Transaction tx = session.beginTransaction();
		Query query = session.createQuery(hql);
		query.executeUpdate();
		tx.commit();
	}
y a t il une solution pour reussir l'update ?
à l'état actuelle je pense à une solution (je sais pas si elle est bonne ou non), je l'ai pas encore faite, il s'agit de ne pas updater les 30000 tout entier, et le faire par groupe par exemple de 200 lignes.
Merci de me faire des propositions ?