@DiffIgnore и @ShallowReference вызывают странное поведение в обратных вызовах - PullRequest
0 голосов
/ 12 февраля 2019

Только начал использовать javers вместо envers и застрял в ассоциациях (@OneToMany и @ManyToOne).Чтобы запретить сканировать и регистрировать все изменения ассоциаций, я применил @DiffIgnore ко всем ассоциациям @OneToMany, и, как ни странно, когда я получаю сущность в событии postpersist hibernate, аннотированные свойства @DiffIgnore игнорируются, и я получаю исключение ленивого init при доступе к этим полям.

Вот мой пример сущности:

@OneToMany(fetch = FetchType.LAZY, mappedBy = "property")
@ShallowReference
private List<PropertyImage> propertyImages = new ArrayList<>();

Свойства изображения

 @Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
Long id;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "property_id", referencedColumnName = "property_id", nullable = false)
private Property property;

Также я попробовал аннотацию @ShallowReference, но снова он выбирает все связанные сущности и вызывает проблемы с производительностью.

Но когда я меняю @ FetchType.EAGER, все работает нормально.Запутался в чем тут проблема

1 Ответ

0 голосов
/ 12 февраля 2019

ShallowReference не работает со списками, у нас есть открытая проблема для этого, см. https://github.com/javers/javers/issues/528

...