Salut tout le monde

Je suis en train d'essayé d'améliorer un projet déjà existant en Java et utilisant Hibernate pour gérer une base de données HSQLDB.
Pour cela, j'aurai besoin d'ajouter un nouveau champ dans une table déjà existant.

Donc je procède comme suit :
Je rajoute le champ dans le fichier .hbn.xml :
Ainsi que le code dans le .java :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
private boolean buy;
 
    public void setBuy(boolean b) {
    	this.buy = b;
    }
 
    public boolean getBuy() {
    	return this.buy;
    }
L'attribut semble avoir correctement été ajouté à la table HSQL, mais à l'éxécution du programme, celui ci lance cinq fois la fonction setBuy avec la valeur false (alors qu'il n'y a pour le moment que quatre éléments dans la table) écrasant la précédente valeur de buy pour toutes les entrées.

Ne comprenant pas d'où ces appels de fonctions ont été émis, j'ai ajouté
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
    	StackTraceElement[] e = Thread.currentThread().getStackTrace();
    	System.out.println("Changement buy " + b);
    	for(StackTraceElement u : e)
    		System.out.println(u);
dans setBuy pour voir quel était la fonction mère. Résultat ?

net.sf.royal.datamodel.Album$$BulkBeanByCGLIB$$590b6d46.setPropertyValues(<generated>)
J'en déduis que c'est une fonction générée automatiquement par Hibernate, mais mes connaissances dans le domaine pour le moment m'empèche de trouver comment faire en sorte que cette fonction n'appelle plus mon setter…

Si vous avez une idée, elle sera la bienvenu ;-)
Je vous remercie d'avance !