@DiffIgnore 和@ShallowReference 在回调中导致奇怪的行为

@DiffIgnore and @ShallowReference causing weird behaviour in callbacks

刚开始使用 javers 代替 envers 并陷入关联(@OneToMany 和@ManyToOne)。 为了防止 javers 扫描和注册所有关联更改,我在所有 @OneToMany 关联上应用了 @DiffIgnore,奇怪的是,当我在休眠的 postpersist 事件中获取实体时,@DiffIgnore 注释属性被忽略,并且在访问这些字段时出现延迟初始化异常。

这是我的示例实体:

@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 时它工作正常。搞不懂这里有什么问题

浅表引用不适用于列表,我们对此有未解决的问题,请参阅 https://github.com/javers/javers/issues/528