У меня есть класс AbstractEntity как суперкласс для всех моих entites, который определяет оптимистическую колонку блокировки, как это:OptimisticLocking и @OneToMany (mappedBy = ...) обработка?
@Version
private long lockVersion;
Теперь я часто получаю OptimisticLockingExceptions на лицах, которые изменены только в одном отношениях mappedBy подобное следующим :
@OneToMany(mappedBy = Property.PROPERTY_DESCRIPTOR, cascade = { CascadeType.REMOVE })
private Set<Property> properties = new HashSet<Property>();
Можно ли исключить эти коллекции из оптимистической блокировки Hibernate? Сущность не изменяется в базе данных вообще ... только другие ссылаются на нее.
Это выглядит многообещающе ... Я проверю, решает ли он мои проблемы. –
Я добавил эту аннотацию ко всем коллекциям MappedBy, которые не каскадируются либо слиянием, либо сохранением. Альтернативное решение состоит в том, чтобы различать entity.getCollection(). Add (...) для неуправляемых объектов и em.refresh (entity) для управляемых объектов. Это позволяет избежать проблем с блокировкой. –