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

刚开始使用 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 时,它工作正常。困惑这里有什么问题


慕桂英4014372
浏览 302回答 1
1回答

牧羊人nacy

ShallowReference 不适用于列表,我们对此有未解决的问题,请参阅https://github.com/javers/javers/issues/528
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java