J'ai une classe AbstractEntity comme superclasse pour tous mes ENTITES qui définit une colonne de verrouillage optimiste comme ceci:Gestion OptimisticLocking et @OneToMany (mappedBy = ...)?
@Version
private long lockVersion;
Maintenant, je reçois souvent OptimisticLockingExceptions sur les entités, qui ne sont modifiés dans une des relations mappedBy semblables à ce qui suit :
@OneToMany(mappedBy = Property.PROPERTY_DESCRIPTOR, cascade = { CascadeType.REMOVE })
private Set<Property> properties = new HashSet<Property>();
Est-il possible d'exclure ces collections Hibernate verrouillage optimiste? L'entité n'est pas du tout changée dans la base de données ... seules les autres la référencent.
Cela semble prometteur ... Je vais vérifier si cela résout mes problèmes. –
J'ai ajouté cette annotation à toutes les collections mappedBy qui ne fusionnent ni ne fusionnent ni ne persistent. Une autre solution consiste à distinguer entity.getCollection(). Add (...) pour les entités non gérées et em.refresh (entité) pour les entités gérées. Ceci évite également le problème de verrouillage. –