对于实体应用程序的生成 ID,使用触发器。因此,为了将生成的值分配给实体,我们使用如下结构:
@Id
@Column(name = "INVOICE_ID")
@GeneratedValue(generator = "trigger")
@GenericGenerator(name = "trigger", strategy = "org.hibernate.id.SelectGenerator")
private Long invoiceId;
@Column(name = "INVOICE_AMOUNT")
@NaturalId(mutable = true)
private Double invoiceAmount;
SelectorGenerator
需要@NaturalId
用于某些字段,该字段应该具有(逻辑上)唯一值。但是有些表没有任何字段具有所有唯一值。SelectGenerator
不支持多个自然 ID。我们如何才能绕过这种情况?