Hibernate - Каскадный пессимист c блокирует родительский столбец @OneToMany к дочернему столбцу @ManyToOne - PullRequest
0 голосов
/ 22 января 2020

У меня это отношение сопоставлено, например.

@Entity
@Table(name = "shop")
public class Shop implements Serializable {

   ...
    @OneToMany(fetch = FetchType.EAGER, mappedBy = "shop")
    private Set<Event> events;

    ...

}

@Entity
@Table(name = "event")
public class Event implements Serializable {

    ...

    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "shop_id", nullable = false)
    private Shop shop;

    ...

}

Когда я выбираю Shop сущность, используя PESSIMISTIC_WRITE, мне нужно, чтобы эта же блокировка распространялась на Event сущность тоже. Мне нужно получить одинаковую блокировку для обеих строк таблиц, которые были связаны. Я использую hibernate (4.3.5.Final)

return (Shop) this.currentSession().load(getEntityClass(), id, new LockOptions(LockMode.PESSIMISTIC_WRITE).setScope(true));

Я загружаю объект Shop из DAO, как описано выше. Однако приведенный выше код не работает. Нужна помощь

...