【发布时间】: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