При использовании Optimisti c Блокировка с помощью Hibernate; возможно ли разрешить добавление дочерних элементов в родительские отношения ManyToMany с дочерними элементами без увеличения номера версии родительского элемента без использования @OptimisticLock(excluded = true)
на стороне родителей?
В этом случае существует два объекта; Родитель и ребенок. Между ними существует связь ManyToMany с использованием JoinTable.
class Parent {
// ... some code...
@ManyToMany(fetch = FetchType.LAZY, mappedBy = "children")
@OptimisticLock(excluded = true) // Is it possible to get rid of this?
public List<Child> getChildren() {
return this.children;
}
public void setChildren(List<Child> children) {
this.children = children;
}
}
class Child {
// ... some code...
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(name = "PARENT_CHILD", joinColumns = {@JoinColumn(name = "child_id")}, inverseJoinColumns = {@JoinColumn(name = "parent_id")})
public List<Parent> getParents() {
return this.parents;
}
public void setParents(List<Parent> parents) {
this.parents = parents;
}
}
Без аннотации @OptimisticLock(excluded = true)
номер версии родителя, по-видимому, все еще увеличивается, когда добавляется дочерний элемент, даже если сторона-владелец отношения находятся на стороне детей - это увеличение номера версии приводит к OptimisticLockException
в конце.
Цель состоит в том, чтобы иметь возможность добавить несколько детей одновременно, не получая OptimisticLockException
. Этого можно достичь, добавив аннотацию @OptimisticLock(excluded = true)
к родительской стороне отношения. Можно ли сделать эту работу без этой дополнительной аннотации?