这是machine
和device
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
,或者我应该说,这将是一项开销。
您需要确保所引用的实体(机器)实现了可序列化。
检查下面的链接以得到进一步的澄清:-
https://thorben-janssen.com/hibernate-tips-model-association-dont-reference-primary-key-columns/