休眠 Envers 在@OneToMany关系的情况下不保存引用的列值



这是 2 个实体的代码,machinedevice

@Audited
@Entity(name = "device")
@Table(name = "device")
public class Device {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToOne(optional = false, fetch = FetchType.LAZY)
@JoinColumn(name = "machineCode", referencedColumnName = "machineCode")
private Machine machine;
}
@Audited
@Entity(name = "machine")
@Table(name = "machine")
public class Machine {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String machineCode;
}

现在,当我保存device实体时。machineCode列(在device的审计表中(从计算机的域对象中获取id的值,而不是相应的machineCode。 我不确定代码是否有任何问题。提前谢谢。

PS - 还有其他混合实体附加到machine实体。因此,不需要添加@OneToMany,或者我应该说,这将是一个开销。


编辑1:如果我说得不够清楚,这个问题是关于envers审计框架的。

您需要确保引用的实体(机器(实现可序列化。

查看以下链接以获取进一步说明:-

https://thorben-janssen.com/hibernate-提示-模型关联-不要引用-主要键列/

相关内容

  • 没有找到相关文章

最新更新