Bonjour, je désire mettre en évidence le nom des champs qui ont été modifiés par un utilisateur sur une instance attachée, ceci bien sur juste avant d'écraser les données précédentes en base de données.
J'ai cru comprendre que les Interceptor pouvaient réaliser cette fonction...
Code:
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="entityInterceptor" ref="findDirtyFields" />
<property name="mappingDirectoryLocations">
....
J'ai un point breakpoint sur la methode
public int[] findDirty(Object entity, Serializable id,
Object[] currentState, Object[] previousState,
String[] propertyNames, Type[] types) {
// TODO Auto-generated method stub
return null;
}Celle-ci est bien appelé lors de mon update cependant, les parametres currentState et previousState sont tous les 2 égaux aux
nouvelles valeurs...
Je ne comprendrais vraiment pas
J'ai bien essayé ds le mapping l'attribut
Code:
select-before-update="true"
Cela a pour effet que les parametres currentState et previousState sont sont tous les 2 égaux aux
anciennes valeurs...
Alors que la logique voudrait que j'ai 2 valeurs différentes!!!
Si quelqu'un peux m'éclairer!!! Merciiii