在@OneToMany关系的情况下,Hibernate Envers不会保存引用的列值

问题描述 投票:1回答:1

这是machinedevice 2个实体的代码。

@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,或者我应该说,这将是一项开销。

hibernate spring-boot spring-data-jpa hibernate-envers
1个回答
0
投票

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

检查下面的链接以得到进一步的澄清:-

https://thorben-janssen.com/hibernate-tips-model-association-dont-reference-primary-key-columns/

© www.soinside.com 2019 - 2024. All rights reserved.