gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 10:16:20 25 4
gpt4 key购买 nike

刚开始使用 javers 代替 envers,并陷入关联(@OneToMany 和 @ManyToOne)。为了防止javers扫描和注册所有关联更改,我在所有@OneToMany关联上应用了@DiffIgnore,奇怪的是,当我在hibernate的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 时,它工作正常。很困惑这里出了什么问题

最佳答案

ShallowReference 不适用于列表,我们对此有 Unresolved 问题,请参阅 https://github.com/javers/javers/issues/528

关于java - @DiffIgnore 和 @ShallowReference 在回调中导致奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54651665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com