Bonjour,
Suite à un bug de stock chez un client, je me suis rendu compte que si ma mise à jour de stock est faite par 2 personnes ( donc 2 navigateur et poste differents ) , je me retrouve avec des chiffres completement abhérant.

Mon projet est en spring + hibernate et se base sur une sortie typique d'un site web avec du JSP.

Mon controller appelle un manager qui utilise bien un transaction manager

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
<bean id="proxyService" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
        <property name="transactionManager" ref="transactionManager" />
        <property name="transactionAttributes">
            <props>
                <prop key="*">PROPAGATION_REQUIRED</prop>
            </props>
        </property>
    </bean>
Dans mon service je fait plusieurs chose avant d'apeller la méthode de mon Dao qui me pause problème.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
    public Articles doUpdateOrInsertWithFlush(Articles dobjet, Integer add) {
        this.getHibernateTemplate().flush();
        this.getHibernateTemplate().refresh(dobjet);
        dobjet.setStock_reel(dobjet.getStock_reel().intValue()+add.intValue());
        this.getHibernateTemplate().saveOrUpdate(dobjet);
 
        this.getHibernateTemplate().flush();
        return dobjet;
    }
J'ai fait des 10 aines de possibilité , mais rien n'y change.


Pour le mapping.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
   <hibernate-mapping>
    <class lazy="true" name="alce.beans.db.Articles" table="articles" dynamic-update="true">
        <id name="art_id" type="int">
            <generator class="native"/>
        </id>
        <property name="date_create"/>
        <property name="stock_reel"  type="java.lang.Integer"/>
    </class>
Donc concretement , lors du lancement il lui prend de récupérer la valeur qu'avait l'article pendant le traitement que fait l'autre utilisateur.

J'aimerais le forcer a se mettre a jour automatiquement, a chaque fois qu'il entre et sort de cette fonctionnalité.


Je serais infiniment reconnaissant a celui qui réussira a m'aider dans mon problème.