【问题标题】:@DiffIgnore and @ShallowReference causing weird behaviour in callbacks@DiffIgnore 和 @ShallowReference 在回调中导致奇怪的行为
【发布时间】:2019-02-12 13:54:56
【问题描述】:

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

【问题讨论】:

    标签: java hibernate spring-boot jpa javers


    【解决方案1】:

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

    【讨论】:

    • 自 Javers 5.3.0 起,@ShallowReference 适用于集合和地图。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-27
    • 1970-01-01
    • 2012-01-18
    • 1970-01-01
    • 2012-10-20
    • 1970-01-01
    相关资源
    最近更新 更多