刚开始使用javers代替envers,并陷入了关联(@OneToMany和@ManyToOne)。 为了防止Javers扫描和注册所有关联更改,我在所有@OneToMany关联上应用了@DiffIgnore,奇怪的是,当我在休眠的后持久事件中获取实体时,@ DiffIgnore注释的属性被忽略了,并且在访问这些字段时出现了惰性初始化异常。 / p>
这是我的示例实体:
@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时,它可以正常工作。困惑这里有什么问题
答案 0 :(得分:1)
ShallowReference不适用于列表,对此我们有未解决的问题,请参见https://github.com/javers/javers/issues/528